为什么这个脚本不复制我的源目录中的文件?

为什么这个脚本不复制我的源目录中的文件?

我正在运行一个带有两个参数的脚本。

myshell.sh source destination 

所以我想复制源目录内的所有文件(不包括子目录)并将它们复制到目标目录。

我的当前目录中有 shell 程序和源代码

这是导致我出现问题的代码部分'

mkdir $2
set count=0

foreach filename (* $1)
    echo $filename
    if(-d $filename) then
        echo "Not copying subdirectory $filename"
    else 
        echo "copying $filename"
        cp $filename $2
        count++
    endif
end

事情是......它正在复制当前目录中的所有文件,而不是源目录中的文件。

我想问题就出在这里

foreach filename (* $1)

我该如何改变它才能正常工作?

顺便说一下,我正在使用 tcsh shell

答案1

它不仅会复制当前目录中的每个文件,还会告诉您它没有复制该source目录。这条线

foreach filename (* $1)

确实是这个问题,应该是:

foreach filename ("$1"/*)

(如果第一个目录参数包含空格,则需要使用引号)。

相关内容