我有一个脚本可以删除早于 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
intest2.sh
将扩展为字符串some file name
并将$2
扩展为5
.
这是假设位于变量test2.sh
中列出的目录中。如果没有,请使用完整路径(绝对或相对),例如:PATH
test3.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