shell中的expr和反引号的区别
来自: 更新日期:早些时候
shell脚本中 的 单引号和反引号经常混淆,请高手帮我区别它们的功能,谢谢~
# 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和反引号的区别视频
相关评论:13556139712:shell中的expr和反引号的区别
姚骆翠双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。
13556139712:Linux中编写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,当然,叫什么名字是你的
13556139712:shell编程提醒参数太多while [$loopcount -lt 5]
姚骆翠expr外边的不应该用单引号,而是要用反引号,也就是1左边的键。另外,result没有加expr运算。
13556139712:linux (shell) too many arguments
姚骆翠tou='expr $ji + $tu '外面的不是单引号,是反引号(键盘左上角esc下面的那个)程序里所有expr相关的语句都错了。
13556139712:shell中生成五位数怎么变成两位数
姚骆翠这样是不是实现我们想要的结果了呢,其实shell中还提供了一个数学运算的命令 expr(evaluate expression),他可以进行加减乘除还有比较运算,不过很可惜的是不支持浮点型运算。还有一个缺陷就是expr命令中的运算符可能会有其他含义如*,必须要使用反斜杠进行转义,这让人很不爽。不过不用担心,有问题就会...
13556139712:linux 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是整数,反之则表示为非整数。其中$?表示...
13556139712:shell里expr $a:'^\\(.\\)' 怎么解释
姚骆翠match of REGEXP in STRING 正则表达式里 (pattern) 是匹配pattern并获取字符串,"."匹配任意除\\n外的单个字符。^表示字符串开始处.^\\(.\\)从字符串开始处匹配任意单个字符并获取这个字符。expr $a:'^\\(.\\)'应该是截取 $a 的第一个字符。也不知道理解的对不对,试着看效果是这样的。
13556139712:shell脚本expr语法错误
姚骆翠expr要求乘法必须转义 return `expr $A \\* $?`
13556139712:shell中的expr
姚骆翠结果是4吧,expr会试图将字串转化为数值计算结果因该是4 不是04 算日期这么算不好啦~,可以参考这个方法,red hat linux测试通过,希望对你有帮助:date -d"1 day ago" +"%d"是获取前一天的日期,如果是前几天,就把1改为其他的数值
单引号原样输出,你可以记为“单调输出”,如下原样输出 eval echo a 这个字符串,很单调吧:
echo 'eval echo a'
反引号执行内容后输出,可以记为“反译输出”,要把引号中的内容反向翻译一下,如下要执行反绰号中的内容 eval echo a,得到 a,再执行 echo,最终输出 a:
echo `eval echo a`
单引号:所有转移符全部关闭,完整的反应括号中的内容
双引号:部分转义符关闭,但某些则保留(如:$ )
反引号:反引号内作为一个系统命令并执行
# 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和反引号的区别视频
相关评论:
姚骆翠双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。
姚骆翠`expr $j + 2`," if [ $i -eq 10 ] then echo "" i=1 else i=$((i+1)) fi doneecho "" 注释里已经说了,script name prg8.sh,脚本名叫prg8.sh,当然,叫什么名字是你的
姚骆翠expr外边的不应该用单引号,而是要用反引号,也就是1左边的键。另外,result没有加expr运算。
姚骆翠tou='expr $ji + $tu '外面的不是单引号,是反引号(键盘左上角esc下面的那个)程序里所有expr相关的语句都错了。
姚骆翠这样是不是实现我们想要的结果了呢,其实shell中还提供了一个数学运算的命令 expr(evaluate expression),他可以进行加减乘除还有比较运算,不过很可惜的是不支持浮点型运算。还有一个缺陷就是expr命令中的运算符可能会有其他含义如*,必须要使用反斜杠进行转义,这让人很不爽。不过不用担心,有问题就会...
姚骆翠expr命令的英文全称是“expression”,即是表达式的意思,作用是一个命令行的计数器,常用于在UNIX\/LINUX系统中求表达式变量的值,一般用于整数值,也可用于字符串。语法:expr 表达式 参考例子:计算字串长度:[root@linux265 ~]# expr length “this is a test”14 参数:空格 隔开每个项 \\(反斜杠...
姚骆翠一、利用expr做计算时变量或字符串必须是整数的规则,把一个变量或字符串和一个已知的整数(非0)相加,看命令返回的值是否为0.如果为0,就认为加法的变量或字符串为整数,否则就不是。i=5 expr $I + 6 &>\/dev\/null echo $?如果输出的是0,那么表明i是整数,反之则表示为非整数。其中$?表示...
姚骆翠match of REGEXP in STRING 正则表达式里 (pattern) 是匹配pattern并获取字符串,"."匹配任意除\\n外的单个字符。^表示字符串开始处.^\\(.\\)从字符串开始处匹配任意单个字符并获取这个字符。expr $a:'^\\(.\\)'应该是截取 $a 的第一个字符。也不知道理解的对不对,试着看效果是这样的。
姚骆翠expr要求乘法必须转义 return `expr $A \\* $?`
姚骆翠结果是4吧,expr会试图将字串转化为数值计算结果因该是4 不是04 算日期这么算不好啦~,可以参考这个方法,red hat linux测试通过,希望对你有帮助:date -d"1 day ago" +"%d"是获取前一天的日期,如果是前几天,就把1改为其他的数值