在脚本之间传递参数

在脚本之间传递参数

我有一个脚本可以删除早于 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

$1intest2.sh将扩展为字符串some file name并将$2扩展为5.

这是假设位于变量test2.sh中列出的目录中。如果没有,请使用完整路径(绝对或相对),例如:PATHtest3.sh

./test2.sh "some file name" 5

它还假设test2.sh首先已使其可执行chmod +x test2.sh并且具有正确的#!-line。


在下面的评论中澄清后:

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

相关内容