1
我正在尝试编写一个脚本,通过ssh将我的音乐从我的电脑发送到我的android手机,但我遇到了一些困难。下面是一段代码:检查一个文件是否存在于远程服务器上,路径中有空格
while read SONG
do
echo $SONG
ssh -qi ~/.ssh/key [email protected]$ip [[ -f "/sdcard/Music/${SONG}" ]] && echo "File exists" || echo "File does not exist"
done < ~/.mpd/playlists/Blues.m3u
目的是检查歌已经在手机,如果它不是,我会使用scp它(如果它的存在,它是不是在相同的相对路径.m3u文件)。
我总是得到sh:语法错误:'Davis/Lost'意外的操作符/操作数,我认为这是因为在戴维斯之前有一个空间,我无法逃脱 (第一个$ SONG是Geater Davis/Lost灵魂文/凄婉的遮阳Blue.mp3)
我也试过这样,相同的结果
while read SONG
do
echo $SONG
SONG="/sdcard/Music/$SONG"
echo $SONG
ssh -qi ~/.ssh/key [email protected]$1 [[ -f "$SONG" ]] && echo "File exists" || echo "File does not exist"
done < ~/.mpd/playlists/Blues.m3u
想法表示欢迎!
感谢它的工作! 其实 ssh -qi〜/ .ssh/key root @ $ 1“[[-f \”$ SONG \“]]”&& echo“File exists”||回声“文件不存在” 也是正确的,它在客户端而不是服务器上回响。 但ssh似乎停止循环,所以我只有第一行blues.m3u –
这回答:http://stackoverflow.com/questions/9393038/ssh-breaks-out-of-while-loop-in -bash –