2017-10-10 54 views
2

命令我有一個腳本類似下面運行ls內SSH

sshpass -p "pwd" ssh -tt [email protected] << EOF 
cd /directory 
file=$(ls -1t| head -1) 
exit 
EOF 

cd /directory成功改變內殼的目錄。但是ls給出了shell之外的結果。 ls的結果與ssh以外的結果相同。請幫忙。

回答

3

$(...)部件正在被外殼評估。您可以通過引用'EOF'來禁用此功能,以便將$(...)傳遞給遠程shell。這類似於使用單引號而不是雙引號和常規字符串。

sshpass -p "pwd" ssh -tt [email protected] << 'EOF' 
cd /directory 
file=$(ls -1t| head -1) 
exit 
EOF