スクリプト間のパラメータ渡し

スクリプト間のパラメータ渡し

x分/日より古いファイルを削除するスクリプトがあります。

find $1 -type f -mmin +$2 -exec rm -f {} \; (name is test2.sh)

test2.shたとえば、パラメータを別のスクリプトに渡す必要があります。test3.sh

ベストアンサー1

パラメータ拡張が次test2.shのように正しく引用されているとします。

find "$1" -type f -mmin +"$2" -exec rm -f {} \;

test3.shこれにより、次のように呼び出すことができます。test2.sh

test2.sh "some file name" 5

$1inはtest2.sh文字列に展開されsome file nameます。$25

これはtest2.sh、変数にリストされたディレクトリにあると仮定します。そうでない場合は、フルパス(絶対または相対)を使用してください。例:PATHtest3.sh

./test2.sh "some file name" 5

test2.shまた、最初に実行可能に作成され、chmod +x test2.sh正しい行があると仮定します#!


以下のコメントで明確にした後:

スクリプトtest3.shは次のことができます(スクリプトと仮定bash)。

read -p 'Enter directory name: ' dirname
read -p 'Enter number of days: ' days

minutes=$(( days * 60 * 24 ))

./test2.sh "$dirname" "$minutes"

次のステップは、ユーザー入力が$days実際の整数であり、$dirname有効なディレクトリ名であることを確認することです。

bashそうでない場合sh:

printf 'Enter directory name: '
read -r dirname

(etc.)

ほとんどの実装にはfind以下が含まれます-delete

find "$1" -type f -mmin +"$2" -delete

おすすめ記事