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