2016-10-18 5 views
0

を見つけるために、スクリプトの引数として与えられたグロブ表現を渡し、これが私のスクリプト私は、コマンドラインで与えられた引数でいくつかのファイルを見つけたい

find -name $1 

です。どうして?私はそれを修正することができますか?

+1

ダブル$ 1引用。 [shellcheck](http://shellcheck.net)を試してください。 –

+2

ところで、 'find -name $ 1'は、ディレクトリを検索しないようにする(find。-nameの代わりにこれを使用する) $ 1 "')はGNUismであり、他のプラットフォームに移植することはできません。 –

答えて

2

ワイルドカードの引用符で囲まれていない拡張子は、パターンに一致するカレントディレクトリ内のファイル名のリストに置き換えられます。したがって

set -- '*.txt' # same as running your script with '*.txt' as first argument 
touch a.txt b.txt c.txt 

find -name $1 

は...実行されます:

find -name a.txt b.txt c.txt 

を...有効な使用されていません。


常にあなたの拡張を引用し、グロブ拡大を避けるために:find . -name "$1"

関連する問題