||
Shell中echo变量时,变量中的多个空格只打印了一个,如下
$ tmp="a b d" $ echo $tmp a b d
解决办法是给变量加上双引号",如下
$ tmp="a b d" $ echo "$tmp" a b d
至于原因,需要了解shell的解析过程:
替换变量
执行命令
按IFS划分命令之后的参数,用""和''包围的部分作为命令的一个参数。
echo $tmp的执行过程为:
替换变量:echo a b d
执行命令:echo a b d
按IFS划分echo命令之后的参数a, b, d
所以打印出来就是a b d,多个空格只显示了一个。
观察一下代码也可知
$ tmp="a b d" $ echo $tmp a b d $ echo a b c a b c $ echo "$tmp" a b d $ echo "a b c" a b c
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 09:19
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社