2013-02-13 58 views
0

我有一個SCP腳本,看起來像這樣:bash和nohup的捕獲

#!/bin/bash 
scp -r /usr/local/htdocs/$1 [email protected]$2:/local/htdocs 

我想從命令行調用它,並通過目錄和目標服務器,與此類似:

move_site.sh website servername 

但是,我想捕獲包含2個參數的文件中的輸出。

所以我想這一點,但使用的nohup

#!/bin/bash 
scp -r /usr/local/htdocs/$1 [email protected]$2:/local/htdocs > $1$1.out 

我怎樣組織既腳本和調用命令,以便它在後臺運行時調用它並沒有顯示任何信息,並捕獲輸出基於目的地和網站?

回答

0

您的腳本應該可以正常工作,但可能在嘗試scp時出錯,這就是爲什麼您的輸出文件爲空?要捕獲錯誤信息輸出文件藏漢,改變>>&

#!/bin/bash 
scp -r /usr/local/htdocs/$1 [email protected]$2:/local/htdocs >& $1$2.out 

要在後臺運行腳本,只需在命令的末尾添加&

move_site.sh website servername & 

附: 網站服務器名稱不應包含任何字符,如果您堅持在$1$2.out表單中使用它們,則不應包含文件名中所允許的任何字符。

0

如果你想通過兩個或多個單詞作爲單個參數,你必須加上引號把它包起來:

$ cat s.sh 
#!/bin/bash 
echo "param1: $1, param2: $2" 

所以我們得到:

$ ./s.sh "a b" c 
param1: a b, param2: c 

下面這個例子中,你有從而改編你的劇本。