
スクリプトに問題があります。コマンド find のオプションが最初のコマンド ライン引数となるスクリプトを作成しようとしています。
私のスクリプトには次のようなものがあります
find_option=$1
find $find_option
問題は、たとえば find オプションの場合、*.txt
出力はディレクトリ内の最初のテキスト ファイルだけであるが、そのようなファイルをすべて検索したいということです。
ありがとう
答え1
スクリプトに次のようなパターンを与えると仮定すると、
./myscript '*.txt'
(パターンが現在のディレクトリ内の名前に拡張されるのを避けるために引用符が必要です)、次のようにスクリプトを記述できます。
#!/bin/sh
name_pattern=$1
find . -name "$name_pattern"
これは最初のコマンドライン引数を受け取り、 の呼び出しでそれを使用してfind
、現在のディレクトリおよびそれ以下のディレクトリで見つかった名前を指定されたパターンでフィルタリングします。
ここでも、スクリプトを呼び出すときにコマンド ラインで引用符$name_pattern
で囲む必要があったのと同じ理由で、呼び出しでのの変数展開find
を引用符で囲む必要があることに注意してください。つまり、パターンが現在のディレクトリ内の名前に展開されるのを避けるためです。