0
我正試圖使用ssh
執行遠程計算機上可用的腳本。如果通過ssh從客戶端運行輸出,或者在ssh之後運行到服務器,則輸出會有所不同。在遠程計算機上執行腳本
該腳本將修剪文件。
tail -n 100 users.txt > temp.txt
rm users.txt
mv temp.txt users.txt
echo $(wc -l users.txt)
echo Done
在從客戶端運行:
[email protected]_mac $ ssh [email protected]_mac '~/path_to_script/demo_script.sh'
輸出:
0 users.txt
Done
而在服務器側 ssh'ing後:
[email protected]_mac $ ssh [email protected]_mac
[email protected]_mac $ cd ~/path_to_script/
[email protected]_mac $ ./demo_script.sh
輸出:
100 users.txt
Done
我們如何執行一個腳本,可遠程機器上?語法不同?
你應該得到相同的結果。我不認爲它是相關的,但'wc -l users.txt'就足夠了;你不需要在命令替換中調用它傳遞給'echo'。 – chepner
實際上,第一個例子中的工作目錄是'〜',而不是'〜/ path_to_script',所以你似乎得到兩個不同文件'〜/ users.txt'和〜〜/ path_to_script/users的大小。 txt'。 – chepner
是的,這是當前工作目錄的問題。修改'demo_script.sh'獲取'〜/ path_to_script/users.txt'路徑後可以正常工作。 –