bashのechoでアスタリスク「*」がワイルドカードとして展開される場合の対処
小粋空間 » Programming Language » bash » bashのechoでアスタリスク「*」がワイルドカードとして展開される場合の対処
bashのechoでアスタリスク「*」がワイルドカードとして展開される場合の対処について紹介します。
1.問題点
次のようなスクリプト「test.sh」を書きました。
#!/bin/bash
data='*** Error!! ***'
echo $data
が、実行すると期待しない結果になります。
実行結果
# ./test.sh
test.sh Error!! test.sh
具体的には、スクリプトを実行したディレクトリのファイル名が表示されます。
このディレクトリにはtest.shしかありませんが、例えば、test2.sh、test3.shがあると、
# ./test.sh
test.sh test2.sh test3.sh Error!! test.sh test2.sh test3.sh
となります。
2.原因
echoするときに、アスタリスク「*」がワイルドカードとして展開されている模様。
3.対処
echoするときの変数dataをダブルクォーテーションで括ります。
#!/bin/bash
data='*** Error!! ***'
echo "$data"
実行結果
# ./test.sh
*** Error!! ***