发布网友 发布时间:2022-04-23 07:41
共3个回答
热心网友 时间:2022-06-17 20:37
用括号执行是有子shell
( MYPARAM=test;echo $MYPARAM;ls) ;echo $MYPARAM
会发现test只打印了一次,外面的这个echo $MYPARAM没有输出。即子SHELL中定义的变量在外层是看不到的
输出:
test
1.gz 2.gz
适用于想要一个单独的SHELL环境的情况。
$( MYPARAM=test;echo $MYPARAM;ls)则会直接报错
bash: test: 1.gz: unary operator expected
正常不会用$()执行命令
热心网友 时间:2022-06-17 20:37
$()是把取括号里面的命令的输出。比如
files=$(ls)
()只是执行括号里面的命令
追问大哥
能再详细点儿吗
我还是有些扭捏~
追答
你对于()的理解是对的。
而$()呢, 就是得到括号里的命令的输出, 然后可以赋值给变量。 还是那个例子:
files=$(ls)files是个变量 ,用它来存储ls的结果。
热心网友 时间:2022-06-17 20:37
需要分情况:
1、
file=$(ls /tmp) 这里$file是字符串
file = (ls /tmp) 这里$file是数组
2、
$(ls /tmp) 会把显示的结果作为命令执行
(ls /tmp) 只显示结果