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
$1
inはtest2.sh
文字列に展開されsome file name
ます。$2
5
これはtest2.sh
、変数にリストされたディレクトリにあると仮定します。そうでない場合は、フルパス(絶対または相対)を使用してください。例:PATH
test3.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