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!! ***
Posted by yujiro このページの先頭に戻る
- シェルスクリプトのexpectで応答メッセージを振り分ける方法
- bashでPostgreSQLのselect結果を出力する方法
- bashでbackspaceが動作しない場合の対処
- bashの変数から最後の1文字を取得・削除する方法
- bashのwhile文で利用した変数がループ外で反映されない場合の対処
- bashの正規表現でスペース(空白)を判定する方法
- bashで文字列の長さを調べる方法
- bashで数値を判定する方法
- bashで小数点を比較する方法
- bashの配列をjoinする方法
- bashのif文で正規表現を使用する方法
- Bashで変数を大文字または小文字に変換する方法
- bashの変数をsplitして配列を作る方法
- シェルスクリプトでtelnet接続する方法
- bashで小数点を比較する方法
トラックバックURL
コメントする
greeting