我想使用shell脚本
从目录中复制文件假设我将目录和文件名单独保存为
dir=/home/user/directory/
file=file_1
在我的脚本中使用此命令复制文件Im
cp $dir$file .
但是我收到了这个错误
/bin/cp omitting directory '/home/user/directory'
我尝试了所有组合,例如。从变量dir等中省略了跟踪backslah,但没有工作。我无法理解这段代码有什么问题。请求帮助
也许命令$dir$file
没有在shell中解压缩(即只有目录变量被解压缩,而不是文件变量)!!!!!
答案 0 :(得分:0)
看起来您在cp $dir$file .
中遇到扩展问题为了防止出现问题,最好用大括号保护您的变量并双引号完整路径/文件,以确保您不会出现问题。在文件名或天堂中被空格捕获,禁止用户的名字:
cp "${dir}${file}" .
这样可以防止错过第二个$
。另外请确保您具有对其他用户/家庭的读取权限(如果您是root用户或使用sudo,那么您应该没问题)
答案 1 :(得分:0)
如果你看到这个,当你以某种方式将空字符串分配给某个地方的file
时。在您的脚本中搜索file=
和unset file
。
您也可以通过添加
来调试它echo ".${file}."
在cp
命令之前的行中。我很确定它打印..
,即变量是空的或不存在。