在ssh中运行ls命令

时间:2017-10-10 10:44:03

标签: linux shell

我有一个类似下面的脚本

sshpass -p "pwd" ssh -tt user@host << EOF  
cd /directory  
file=$(ls -1t| head -1)  
exit  
EOF

cd /directory正在shell中成功更改目录。但是ls给出了shell之外的结果。 ls的结果与在ssh之外执行的结果相同。请帮助。

1 个答案:

答案 0 :(得分:3)

外壳正在评估$(...)部分。您可以通过引用'EOF'来禁用此功能,以便将$(...)传递给远程shell。它类似于使用单引号而不是带有常规字符串的双引号。

sshpass -p "pwd" ssh -tt user@host << 'EOF'  
cd /directory  
file=$(ls -1t| head -1)  
exit  
EOF