ITPub博客

首页 > Linux操作系统 > Linux操作系统 > linux 命令符变量

linux 命令符变量

Linux操作系统 作者:mcxiaoracle 时间:2022-06-20 20:36:58 0 删除 编辑

引用及转义(单引号/双引号/反斜杠/反引号)

1.  单引号

去除 字符串中的所有特殊含义,也即保持引号内的原始内容。

$ echo &  # 在后台执行echo$ echo '&'  # 打印&$ echo "$PATH"  # 打印系统环境变量$ echo '$PATH'  # 防止变量名扩展,直接打印$PATH

允许变量名扩展( $var)、子进程( $(command)或 `command`)和转义操作( \)。以下字符失去特殊含义:

  1. 作为argument分隔符的空格变为普通空格
  2. 具有强约束的单引号变为普通单引号字符
  3. 模型匹配特殊字符变为普通字符
  4. 扩展 $HOME的 ~特殊字符变为普通字符
  5. …


    

3.  反引号

通过  `<command>`在子进程中执行命令,一般建议用 $(command)替代,显式执行。

4.  反斜杠


转义,使特殊字符失去特殊含义。在没有引号或双引号内有效,在单引号中无效。




5.  $’…’(ANSI C like strings)


比单引号的条件宽松,允许转义字符转义,具有移植性。例如,当需要在read prompt中使用在多行字符串时:


read -p "Please assign a new value to the LANG(=$LANG) variable: \n\tLANG=" LANG

echo $LANG

1

2

直接使用\n将无法转义。此时需引入$''字符串:


read -p "Please assign a new value to the LANG(=$LANG) variable: "$'\n\t'"LANG=" LANG

echo $LANG

1

2

如字符串中不需要变量扩张,则直接使用$'':


read -p $'Somehow\na multiline prompt\nhere: '

1

也可以将包含转义的可复用字符作为变量调用:


newline=$'\n'

read -p "Somehow${newline}a multiline prompt${newline}here: "



今天遇到一个需求:

在反引号内执行一条命令,而命令参数需要单引号,因为在SQL中单引号就是默认的字符串了

结果我试了2种方法包括shell的拼接和字符串的转义都失败了

使用显示的command 结果好了。。。

以及数字和字符串的转换函数等。以及命令和字符串的组合等



推荐阅读:

原文链接:https://blog.csdn.net/weixin_43958105/article/details/118728964

https://blog.csdn.net/laobai1015/article/details/119758015

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949806/viewspace-2901764/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 计算Linux天数
请登录后发表评论 登录
全部评论
数据方向,了解oracle ,IBM DB2 730

注册时间:2019-09-30

  • 博文量
    286
  • 访问量
    226568