shell中的expr和反引号的区别

来自:    更新日期:早些时候
shell脚本中 的 单引号和反引号经常混淆,请高手帮我区别它们的功能,谢谢~

单引号原样输出,你可以记为“单调输出”,如下原样输出 eval echo a 这个字符串,很单调吧:
echo 'eval echo a'

反引号执行内容后输出,可以记为“反译输出”,要把引号中的内容反向翻译一下,如下要执行反绰号中的内容 eval echo a,得到 a,再执行 echo,最终输出 a:
echo `eval echo a`

单引号:所有转移符全部关闭,完整的反应括号中的内容
双引号:部分转义符关闭,但某些则保留(如:$ )
反引号:反引号内作为一个系统命令并执行

果我们想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep会把Goldberg和phonebook当作需要搜索的文件
# grep 'Susan Gold' phonebook
Susan Goldberg 403-212-4921
当shell碰到第一个单引号时,它忽略掉其后直到右引号的所有特殊字符
2. 双引号 ( " " )
双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。
# x=*
# echo $x
hello.sh menus.sh misc.sh phonebook tshift.sh
# echo '$x'
$x
# echo "$x"
*


shell中的expr和反引号的区别视频

相关评论:
  • 13556139712shell中的expr和反引号的区别
    姚骆翠双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。

  • 13556139712Linux中编写shell脚本,输出如下序列:1,3,2,4,3,5,4,6,···100...
    姚骆翠`expr $j + 2`," if [ $i -eq 10 ] then echo "" i=1 else i=$((i+1)) fi doneecho "" 注释里已经说了,script name prg8.sh,脚本名叫prg8.sh,当然,叫什么名字是你的

  • 13556139712shell编程提醒参数太多while [$loopcount -lt 5]
    姚骆翠expr外边的不应该用单引号,而是要用反引号,也就是1左边的键。另外,result没有加expr运算。

  • 13556139712linux (shell) too many arguments
    姚骆翠tou='expr $ji + $tu '外面的不是单引号,是反引号(键盘左上角esc下面的那个)程序里所有expr相关的语句都错了。

  • 13556139712shell中生成五位数怎么变成两位数
    姚骆翠这样是不是实现我们想要的结果了呢,其实shell中还提供了一个数学运算的命令 expr(evaluate expression),他可以进行加减乘除还有比较运算,不过很可惜的是不支持浮点型运算。还有一个缺陷就是expr命令中的运算符可能会有其他含义如*,必须要使用反斜杠进行转义,这让人很不爽。不过不用担心,有问题就会...

  • 13556139712linux expr命令详解
    姚骆翠expr命令的英文全称是“expression”,即是表达式的意思,作用是一个命令行的计数器,常用于在UNIX\/LINUX系统中求表达式变量的值,一般用于整数值,也可用于字符串。语法:expr 表达式 参考例子:计算字串长度:[root@linux265 ~]# expr length “this is a test”14 参数:空格 隔开每个项 \\(反斜杠...

  • 13556139712如何在Shell中判断一个变量是否为整数
    姚骆翠一、利用expr做计算时变量或字符串必须是整数的规则,把一个变量或字符串和一个已知的整数(非0)相加,看命令返回的值是否为0.如果为0,就认为加法的变量或字符串为整数,否则就不是。i=5 expr $I + 6 &>\/dev\/null echo $?如果输出的是0,那么表明i是整数,反之则表示为非整数。其中$?表示...

  • 13556139712shell里expr $a:'^\\(.\\)' 怎么解释
    姚骆翠match of REGEXP in STRING 正则表达式里 (pattern) 是匹配pattern并获取字符串,"."匹配任意除\\n外的单个字符。^表示字符串开始处.^\\(.\\)从字符串开始处匹配任意单个字符并获取这个字符。expr $a:'^\\(.\\)'应该是截取 $a 的第一个字符。也不知道理解的对不对,试着看效果是这样的。

  • 13556139712shell脚本expr语法错误
    姚骆翠expr要求乘法必须转义 return `expr $A \\* $?`

  • 13556139712shell中的expr
    姚骆翠结果是4吧,expr会试图将字串转化为数值计算结果因该是4 不是04 算日期这么算不好啦~,可以参考这个方法,red hat linux测试通过,希望对你有帮助:date -d"1 day ago" +"%d"是获取前一天的日期,如果是前几天,就把1改为其他的数值

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网