我有一个名为a.sh的可执行文件。它需要一个未知数量的参数。从参数列表中,我想将所有文件复制到另一个文件夹(/ myfolder)。
例如,如果我在命令行中输入:
./a.sh foo.out | tee -a text.txt
假设foo.out和text.txt都存在,我想将它们复制到myfolder。
我正在考虑将所有参数写入文件并逐行读取文件,并使用if [-f]语句进行检查。那里有更整洁/更清洁的解决方案吗?
谢谢!
答案 0 :(得分:0)
稍微有些棘手,因为你列出的文件实际上并不是a.sh的所有参数。 shell将它们分开,因此foo.out是a.sh的参数,text.txt是tee的参数。执行建议的唯一方法是将整个命令行存储在一个字符串中,处理它中的文件,然后评估该字符串。
答案 1 :(得分:0)
(这里我假设管道符号是错误的问题。)
无需写入文件,因为您可以轻松检查参数,而无需知道有多少参数。
for arg ; do
if [ -f $arg ]; then
cp $arg myfolder
fi
done
默认情况下会循环遍历参数,这是在这里使用的。