我有兩個shell腳本:運行內的另一個shell腳本的shell腳本不同的用戶
one.sh
echo "hello"
su - oracle -c "sh /tmp/two.sh"
echo "good bye"
two.sh
echo "bla bla bla"
我想以「root」身份運行「one.sh」並查看此輸出:
hello
bla bla bla
good bye
這怎麼可能?
我有兩個shell腳本:運行內的另一個shell腳本的shell腳本不同的用戶
one.sh
echo "hello"
su - oracle -c "sh /tmp/two.sh"
echo "good bye"
two.sh
echo "bla bla bla"
我想以「root」身份運行「one.sh」並查看此輸出:
hello
bla bla bla
good bye
這怎麼可能?
首先將chmod +x
設置爲您的腳本
嘗試:
echo "hello"
su - oracle -c /tmp/two.sh
echo "good bye"
要登錄,從bash腳本其他用戶
從根用戶登錄到oracle用戶時,我不需要密碼。 – AloneInTheDark
好的,你是如何看到我答案部分的頂部的? – MLSC
是的,這個工作現在。 – AloneInTheDark
在行
su - oracle -c "sh two.sh"
解釋不知道文件 「two.sh」 的路徑。
嘗試使用絕對路徑...(例如,SH /tmp/two.sh 「)
這樣:
[email protected]:/tmp# ./one.sh
hello
bla bla bla
good bye
UPDATE
也請檢查」 sh「可以通過oracle用戶找到...否則,爲」sh「指定絕對路徑...
我已經試過這種方式,但沒有奏效。對於在問題中不提及它,我也感到抱歉。我編輯它。 我的問題是,當我運行這個腳本時,我無法在控制檯中看到「bla bla bla」。 – AloneInTheDark
奇怪的是,它在爲我工作... – MarcoS
很明顯,shell中的註釋應以「#」開頭,「//此命令不會顯示任何輸出」是非法註釋,會產生語法錯誤... :-) – MarcoS
? – MLSC
是的,也想從那裏得到輸出。 – AloneInTheDark
嘗試:'su - oracle -c/tmp/two.sh'告訴輸出結果是什麼 – MLSC