我有一个名为的文件test
,内容是:
ubuntu@regina:~$ cat test
** test **
通过命令行捕获此文件工作正常,但如果我使用命令替换,我会得到一个可以理解但不期望的结果。
ubuntu@regina:~$ A=$(cat test)
ubuntu@regina:~$ echo $A
deployment detect.sh htpasswd.py logs test uwsgi-1.0.4 uwsgi-1.0.4.tar.gz test deployment detect.sh htpasswd.py logs test uwsgi-1.0.4 uwsgi-1.0.4.tar.gz
由于文件中存在星号,test
它基本上执行echo *
并列出目录内容以及文件内容。
是否有一个参数可以传递给命令替换语法,但该语法不会提供此结果,或者是否有另一个应该用于此目的的习惯用法?
答案1
你想做的echo "$A"
。将变量括在引号中使其成为字符串。
例子:
[root@talara test]# A=$(<test)
[root@talara test]# echo $A
FILE1 ham test test FILE1 ham test
[root@talara test]# echo "$A"
** test **