命令替换:具有可执行内容的 cat

命令替换:具有可执行内容的 cat

我有一个名为的文件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 **

相关内容