
linux shell编程问题
$seq5|echo$[$(tr'\n'‘+’)0]这句命令可以求1到5的和,并输出的terminal上。本人刚开始接触shell编程,想问问中括号里面的$符号的作用是什...
$ seq 5 | echo $[ $( tr '\n' ‘+’ ) 0 ]
这句命令可以求1到5的和,并输出的terminal上。本人刚开始接触shell编程,想问问中括号里面的$符号的作用是什么呢?就是$( tr '\n' '+')这句话。好像不加$符号是不对的,为什么必须有$符号呢?谢谢各位~ 展开
这句命令可以求1到5的和,并输出的terminal上。本人刚开始接触shell编程,想问问中括号里面的$符号的作用是什么呢?就是$( tr '\n' '+')这句话。好像不加$符号是不对的,为什么必须有$符号呢?谢谢各位~ 展开
1个回答
展开全部
seq 5输出是这样的:
1
2
3
4
5
tr '\n' '+'表示将换行符替换为'+'所以就成了1+2+3+4+5+
最后还有一个0,所以就表示1+2+3+4+5+0,可以将其想象为一个表达式,即
SUM="1+2+3+4+5+0"
那么$SUM表示引用SUM的值,原表达式的意思成为$[1+2+3+4+5+0]
最重要的是$[],它对[]中的表达式进行运算,所以得到15
$表示引用,reference,就是取值的意思
1
2
3
4
5
tr '\n' '+'表示将换行符替换为'+'所以就成了1+2+3+4+5+
最后还有一个0,所以就表示1+2+3+4+5+0,可以将其想象为一个表达式,即
SUM="1+2+3+4+5+0"
那么$SUM表示引用SUM的值,原表达式的意思成为$[1+2+3+4+5+0]
最重要的是$[],它对[]中的表达式进行运算,所以得到15
$表示引用,reference,就是取值的意思
追问
先谢谢这么详细的回答~
但其实我想问的是,$( tr '\n' ‘+’ ),此句中$符号的作用。这里也是reference吗?我感觉这里的作用好像是让后面括号中的内容在terminal中执行,作用相当于`( tr '\n' ‘+’ )`。不知$是否有``的作用,还望多多指点~
追答
嗯,对,你理解的是对的,是相当于``的意思,很久没写脚本了,忘得差不多了!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询