コマンドライン引数でオプションを探す

コマンドライン引数でオプションを探す

私のスクリプトに問題があります。 findコマンドのオプションが最初のコマンドライン引数であるスクリプトを作成しようとしています。

私のスクリプトには次のものがあります。

find_option=$1

find $find_option

問題は、たとえば、検索オプションの場合、*.txt出力は私のディレクトリの最初のテキストファイルですが、そのようなファイルをすべて探したいということです。

ありがとう

答え1

スクリプトに次のパターンを提供するとします。

./myscript '*.txt'

(現在のディレクトリの名前でパターンが拡張されるのを防ぐために引用符が必要です。)その後、次のようにスクリプトを作成できます。

#!/bin/sh

name_pattern=$1

find . -name "$name_pattern"

これは最初のコマンドライン引数を取得して呼び出しに使用しfind、現在のディレクトリとその下にある名前を指定されたパターンでフィルタリングします。

ここでは、スクリプトを呼び出すときにコマンドラインで変数拡張を引用する必要があるのと同じ理由で、呼び出し時に変数$name_pattern拡張を引用する必要があることに注意してください。つまり、現在のディレクトリの名前でパターンを拡張するのを防ぐためです。find

関連情報