2017-02-24 156 views
0

我對於unix和腳本編程不熟悉,需要您對以下方案的幫助。 這些都是我sh文件無法在shell腳本中執行多個命令

#!/bin/bash 
usrun xyz 
whoami 

當我打電話從膩子這個慶典文件的要求我爲我的XYZ用戶密碼的一些其他信息,以正確登錄在XYZ用戶的內容。 成功登錄後,putty中的$符號更改爲#### xyz $,所以我猜測它爲xyz用戶打開了一個新會話。 但是,之後,whoami命令沒有得到執行。只有在輸入exit之後,whoami命令纔會執行。

爲什麼會發生這種情況?如何在成功驗證xyz用戶後執行whoami命令?

####表示我目前通過putty連接到的服務器的最後四位數字。

+1

Shell腳本通常是由它們的目的是機器執行觸摸。如果您想遠程運行它們,則必須在執行時或腳本中包含該信息。有很多答案已經涵蓋了關於對包括這個遠程服務器的遠程服務器執行shell腳本的這些信息:http://unix.stackexchange.com/questions/87405/how-can-i-execute-local-script-on-remote- machine-and-include-arguments –

+0

聽起來像'usrun'打開一個新shell;你的腳本阻塞,直到shell退出,然後*運行'whoami'。你需要一些方法來指定'whoami'作爲'usrun'應該執行的命令。 – chepner

+0

感謝Michael..for link ..雖然我無法使這個腳本工作。 –

回答

0

沒有任何參數的usrun命令會阻止bash腳本的執行。因此,直到命令沒有完成(當你輸入exit時),下一個命令(whoami)不會被執行。

如果你想登錄到機器並執行命令你應該嘗試:

#!/bin/bash 
usrun -u xyz whoami 

-u選項允許你指定用戶和未來可以提供的命令來執行。

如果你想使用膩子在遠程計算機上執行多個命令我建議你遵循類似這篇文章的內容:

https://superuser.com/questions/1103873/how-to-type-commands-in-putty-by-creating-batch-file

+0

嗨Christián..I試過你的建議上面的方法,但它並不適合我,因爲我的工作時試圖執行命令我得到許可被拒絕例外.. –

+0

我已經做usrun它基本上提供特權用戶的訪問控制一些基本的閱讀,在他們的小說網站也明確指出usrun -u XYZ「命令」將執行,但在我的情況它沒有發生..它直接嘗試執行沒有身份驗證提示的命令,這是導致權限被拒絕的問題.. –

+0

你是否建議#!/bin/bash usrun xyz -u xyz whoami?我無法格式化我的答案,因爲我正在使用該應用發佈評論。 –