sshpass同命令行的命令无法识别问题求助
sshpass同命令行的命令无法识别问题求助
我在正常运行脚本的时候碰到了个奇怪的状况:所有和sshpass写在同一行的命令突然都不被系统识别了。给大家看看我脚本里出问题的两段命令:
第一段是结合rsync使用的命令:
sshpass -p "$password" rsync -a -e "ssh -o StrictHostKeyChecking=no -p $port" "$username@$hostname:${src_dir}${dir}/" "${dest_dir}${dir}/"
第二段是通过ssh执行远程目录查询的命令:
dirs=$(sshpass -p "$password" ssh -o StrictHostKeyChecking=no -p "$port" "$username@$hostname" "ls -lt --time-style=long-iso '$src_dir' | grep '^d' | head -n 3 | awk '{print $8}'")
这些命令里用到的ls、grep、head、awk还有rsync,在脚本其他单独运行的部分都是完全正常的,没有任何问题。而且我已经确认sshpass是安装好的:
atmos_username@atmosserver:~$ which sshpass /usr/bin/sshpass
但运行上面这两段命令时,却弹出了一堆报错:
bash: grep: command not found
bash: head: command not found
bash: awk: command not found
bash: ls: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [Receiver=3.2.7]
Copying ...
有没有大佬能帮忙分析下这到底是哪里出问题了呀?
备注:内容来源于stack exchange,提问作者Dimitris Tsiaousidis




