我正在运行一个带有两个参数的脚本。
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"/*)
(如果第一个目录参数包含空格,则需要使用引号)。