我正在尝试在 shell 脚本中执行以下命令,adir="mydir"
其中extType=*.txt
cp "$adir/$extType" "$destination"
但是我得到:
cp: cannot stat ‘mydir/*.txt’: No such file or directory
但是有这样的目录,如果我在命令行中手动执行它,它就可以工作。
有什么想法有什么问题吗?
我正在尝试在 shell 脚本中执行以下命令,adir="mydir"
其中extType=*.txt
cp "$adir/$extType" "$destination"
但是我得到:
cp: cannot stat ‘mydir/*.txt’: No such file or directory
但是有这样的目录,如果我在命令行中手动执行它,它就可以工作。
有什么想法有什么问题吗?
您应该更改
"$adir/$extType"
为"$adir/"$extType
否则不会发生 glob 扩展,并且它会查找一个名称与*.txt
无法找到的文件完全相同的文件,因此它会抱怨它:Ravexina 已经很好地指出,globbing 在双引号或单引号中不起作用,顺便说一句,cp 语法对于多个文件/单个目标是错误的,需要 -t 标志。
您可以做的替代方法是使用 bash 数组:
或者,循环