というファイルがありますが、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 **