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