トップページへ

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!! ***

« 前の記事へ

次の記事へ »

トップページへ