简述bash shell命令行替换中单引号、双引号、倒引号的区别,以$PATH为例
展开全部
学习重在实践,自己敲一下,啥都出来了。
假设 PATH=/etc
1)单引号会屏蔽 $ 的取值功能。
# echo '$PATH'
$PATH
2)双引号则不会。
# echo "$PATH"
/etc
3)倒引号表示优先执行。下例即是先执行echo命令,然后将结果赋值给myPath。
# myPath=`echo $PATH`
# echo $myPath
/etc
否则
# myPath=echo $PATH
这样会报错,因为shell命令解析是根据空格“分割重组”的。先分割成myPath=echo和$PATH,然后做变量替换,$PATH被替换为/etc,最后重组变成:myPath=echo /etc。显然/etc不是一个命令,因此会报错。
假设 PATH=/etc
1)单引号会屏蔽 $ 的取值功能。
# echo '$PATH'
$PATH
2)双引号则不会。
# echo "$PATH"
/etc
3)倒引号表示优先执行。下例即是先执行echo命令,然后将结果赋值给myPath。
# myPath=`echo $PATH`
# echo $myPath
/etc
否则
# myPath=echo $PATH
这样会报错,因为shell命令解析是根据空格“分割重组”的。先分割成myPath=echo和$PATH,然后做变量替换,$PATH被替换为/etc,最后重组变成:myPath=echo /etc。显然/etc不是一个命令,因此会报错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询