Shell

ssh 後執行多個命令

  • October 10, 2015

我需要將 bash 命令傳遞給另一個需要執行以下操作的程序:

  1. ssh 到電腦。這不需要密碼提示。
  2. 設置一些環境變數:source path/to/script.sh
  3. 啟動需要 (2) 的 gui 程序。

到目前為止,我有以下內容:

ssh -n -f pc-name -XYC nohup source folder/setup_thing.sh; program

為了我的努力,我得到:

nohup: failed to run command `source': No such file or directory
bash: program: command not found

我已經嘗試過這樣的修復以及其他幾個類似的答案。我不能把所有這些都放在一個 bash 文件中,然後呼叫ssh mySever 'nohup bash myscript.sh'.

如何重組上述命令以使其成功執行?

我會嘗試

ssh -n -f pc-name -XYC ". folder/setup_thing.sh; nohup  program &"
  • . folder/setup_thing.sh將從 setup_thing.sh 初始化變數。
  • nohup program &將在後台執行程序,並從 ssh 返回(由於 nohup)”

我試過這個:

nohup ssh -n -f pc-name -XYC "source folder/setup_thing.sh; program"

它奏效了。雖然它確實告訴我

nohup: ignoring input and redirecting stderr to stdout

引用自:https://unix.stackexchange.com/questions/235191