命令替換:具有可執行內容的 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 **

相關內容