2011-10-04 66 views
1

我有一个名为a.sh的可执行文件。它需要大量的参数。从参数列表中,我想将所有文件复制到另一个文件夹(/ myfolder)中。Bash:将文件的所有参数复制到目录

例如,如果我在命令行上输入:

./a.sh foo.out | tee -a text.txt 

假设foo.out和的text.txt都存在,我想将它们复制到MyFolder文件。

我正在考虑将所有参数写入文件并逐行读取文件,并使用if [-f]语句进行检查。那里有整洁/清洁解决方案吗?

谢谢!

+4

'text.txt'不会**作为'a.sh'的参数对待。上述命令执行'./a.sh foo.out'并将其输出到'tee -a text.txt'。 – Dennis

回答

0

有点棘手,因为您列出的文件实际上并不是a.sh的所有参数。 shell将它们分开,所以foo.out是a.sh的参数,text.txt是tee的一个参数。唯一可以做到的建议是将整个命令行存储在一个字符串中,然后处理这些文件,然后对字符串进行评估。

0

(在这里我假设管道符号是错误的问题。)

没有必要写入一个文件,因为你可以很容易地检查参数,不知道有多少。

for arg ; do 
    if [ -f $arg ]; then 
    cp $arg myfolder 
    fi 
done 

对于默认情况下会循环参数,这在这里使用。

相关问题