2012-02-13 5 views
1

'*'を含むいくつかの行を読むと、'*'はワイルドカードとして見えます。 '*'ちょうど'*'であるいくつかのソリューションletsをexsitsかどうか、してください!bashの[command]を読む

答えて

0

特殊なファイル名の文字をワイルドカードとして使用しない場合は、読み込む前にスクリプトに次のように入力します。

set -o noglob

これは*を防ぐことができますか?と[]は特殊な意味を持たず、通常の文字として扱います。あなたはそれを引用する場合は、ファイル名展開は行われません。

次の例では、ポイント

touch 1 2 3 
echo "With wild card expansion" 
echo * 

echo "Without wild card expansion" 
set -o noglob 
echo * 
 
And produces the following results 

With wild card expansion 
1 2 3 
Without wild card expansion 
* 
0

エスケープ文字:\*でエスケープできます。これは、*がリテラル*であり、1つ以上の文字がグロブパターンとして一致しないことを意味します。

+0

もしも「の\トン\ ABC \ O * \ ABCDEFG」 – SnailTang

1

を示しそれはあなたが変数を使用する方法によって決まります。例:

$ ls 
f1 f2 f3 
$ read line 
* 
$ echo "$line" 
* 
$ echo $line 
f1 f2 f3 
+0

おかげで、私は話ではありません最初のポイントのために引用符を使用しても問題はなく、第二に、発見した[読み取りのような行] – SnailTang

関連する問題