說我已經存儲在文件foo.sh
在以下bash腳本:執行bash腳本
#!/bin/bash
echo foo
而不必scp
文件,我怎麼能執行存儲在foo.sh
上的腳本遠程機器?
我曾嘗試以下(有一些變化)沒有成功:
$ ssh [email protected] eval `cat foo.sh`
eval `cat foo.sh`
似乎擴大到eval #!/bin/bash echo foo
這裏
說我已經存儲在文件foo.sh
在以下bash腳本:執行bash腳本
#!/bin/bash
echo foo
而不必scp
文件,我怎麼能執行存儲在foo.sh
上的腳本遠程機器?
我曾嘗試以下(有一些變化)沒有成功:
$ ssh [email protected] eval `cat foo.sh`
eval `cat foo.sh`
似乎擴大到eval #!/bin/bash echo foo
這裏
ssh [email protected] 'bash -s' < local_script.sh
我從該線程得到它:How to use SSH to run a shell script on a remote machine?
cat foo.sh | ssh -T [email protected]
將要訣竅。 -T
選項可以抑制由於從文件輸入管道而導致的警告。
貓的無用用 – 2011-04-14 14:46:07
聽說貓的無用用途。 ssh root @ remote
cat foo.sh | ssh HOSTNAME
現在測試,但:小心處理! :)
(刪除破折號(見註釋)和幾乎所有:))
你爲什麼要'貓foo.sh -'?這將阻止,等待用戶點擊'ctrl-D' – 2011-04-14 14:45:25
那麼,我沒有可測試的環境。沒有短跑?我糾正了它。 – 2011-04-14 17:53:05
你不需要破折號,沒有從標準輸入讀取參數的'cat'。但是你根本不需要'cat',也不需要'foo.sh'文件。只需運行'sh'。 – Idelic 2011-04-14 23:26:02
在接受的答案我看到:
我想它作爲一個襯墊。你能做一個小代碼的例子嗎?
這應該是它:
ssh [email protected] 'bash -s -- uno' < local_script.sh
或更好,用在這裏 - 在文件的[如何使用ssh在遠程機器上運行shell腳本
ssh [email protected] 'bash -s -- uno' <<\EOF
> date
> echo $1
> EOF
jue sep 18 13:01:25 CEST 2014
uno
可能重複? ](http://stackoverflow.com/questions/305035/how-to-use-ssh-to-run-shell-script-on-a-remote-machine) – aioobe 2011-04-14 13:07:46
你當然想要設置SSH它不需要密碼:http://www.csua.berkeley.edu/~ranga/notes/ssh_nopass.html – 2013-01-11 01:40:53
這個問題的一些答案給了我糖尿病。 – Zenexer 2013-08-22 01:50:48