尝试在 bash 中使用 scp 将远程文件复制到我的本地系统,
我已经获得了我想要的文件名并分配给变量,$lastModifiedFile
但
问题是它在文件名中包含空格。
要将此变量与 scp 一起使用,需要使用反斜杠对空格进行转义。
有没有一种简单的方法来格式化这个变量并在必要的地方插入正确的转义字符,即在空格上?
#!/bin/bash
lastModifiedFile=$(sshpass -p 'passw0rd' ssh user@server 'ls -tr /path/output*| tail -n 1')
echo "$lastModifiedFile"
sshpass -p 'passw0rd' scp user@server:"$lastModifiedFile" /root/
这是脚本输出..
[user@host ~]# ./script.sh
/path/outputSat Mar 09 151905 GMT 2013.html
scp: /path/outputSat: No such file or directory
scp: Mar: No such file or directory
scp: 09: No such file or directory
scp: 151905: No such file or directory
scp: GMT: No such file or directory
scp: 2013.html: No such file or directory
我正在寻找类似下面的东西,甚至是更简单的解决方案?..
escapedFilename=""
for letter in $lastModifiedFile
if $letter == " "
$escapedFilename += "\ "
else
$escapedFilename += $letter