Linux 无法从bash脚本中使用空格SCP路径?

Linux 无法从bash脚本中使用空格SCP路径?,linux,bash,shell,scp,Linux,Bash,Shell,Scp,我有一个bash脚本,它生成要执行的SCP命令。代码的相关部分如下所示: echo $COPY_CMD $COPY_CMD rascher@localhost:~/Desktop/video_final$ ./xfervids.sh scp "/media/My Book/PhotosVideos/Videos/18May2008Download/SD_VIDEO/PRG001/MOV056.MOD" rascher@192.168.1.101:./video_working/ rasche

我有一个bash脚本,它生成要执行的SCP命令。代码的相关部分如下所示:

echo $COPY_CMD
$COPY_CMD
rascher@localhost:~/Desktop/video_final$ ./xfervids.sh scp "/media/My Book/PhotosVideos/Videos/18May2008Download/SD_VIDEO/PRG001/MOV056.MOD" rascher@192.168.1.101:./video_working/ rascher@192.168.1.101's password: "/media/My: No such file or directory Book/PhotosVideos/Videos/18May2008Download/SD_VIDEO/PRG001/MOV056.MOD": No such file or directory 我的输出如下所示:

echo $COPY_CMD
$COPY_CMD
rascher@localhost:~/Desktop/video_final$ ./xfervids.sh scp "/media/My Book/PhotosVideos/Videos/18May2008Download/SD_VIDEO/PRG001/MOV056.MOD" rascher@192.168.1.101:./video_working/ rascher@192.168.1.101's password: "/media/My: No such file or directory Book/PhotosVideos/Videos/18May2008Download/SD_VIDEO/PRG001/MOV056.MOD": No such file or directory rascher@localhost:~/Desktop/video\u final$。/xservices.sh scp“/media/My Book/PhotosVideos/Videos/2008年5月18日下载/SD_VIDEO/PRG001/MOV056.MOD”rascher@192.168.1.101:/视频工作/ rascher@192.168.1.101的密码: “/media/My:没有这样的文件或目录 Book/PhotosVideos/Videos/2008年5月18日下载/SD_VIDEO/PRG001/MOV056.MOD”:没有这样的文件或目录 但是,当我获取输出的第2行:
scp”/media/…
,将其复制并粘贴到终端中时,它就工作了


我做错了什么?我试着逃出“我的书”(
“我的书”
)中的空格,放入两个
\
字符而不是一个(
“我的书”
),但我无法使其行为一致。帮助?

当路径名中有空格时,你必须非常小心

在上下文中,您可能需要:

eval $COPY_CMD

这次不需要在变量周围加引号。

当路径名中有空格时,必须格外小心

在上下文中,您可能需要:

eval $COPY_CMD
这次您不需要在变量周围加引号。

您应该了解如何以及为什么避免在变量中添加命令,以及
eval
的安全含义

您可能希望以这种方式使用变量的一个原因是记录或显示脚本执行的操作。正如您所发现的,在能够正确引用或转义空格等方面会出现问题。一种方法是使用
set-x
set+x
在不同的点i打开和关闭这种类型的输出n您的脚本。

您应该了解如何以及为什么避免将命令放入变量,以及
eval
的安全含义


您可能希望以这种方式使用变量的一个原因是记录或显示脚本执行的操作。正如您所发现的,在能够正确引用或转义空格等方面会出现问题。一种方法是使用
set-x
set+x
在不同的点i打开和关闭这种类型的输出n您的脚本。

完全不知道
eval
bash命令。谢谢!完全不知道
eval
bash命令。谢谢!我的小家庭dvd刻录脚本可能写得太多了,但信息还是很好。我的小家庭dvd刻录脚本可能写得太多了,但信息还是很好。