2010-08-17 55 views
0

我正在編寫一個shell腳本,其中在一個條件中,腳本將像su - xxx那樣更改用戶,然後它必須執行一些命令/腳本,並且應該保持登錄到該用戶/會話以進行用戶交互。一旦用戶輸入退出,它應該退出該會話並返回到腳本。在shell腳本中使用su

我曾嘗試使用su - xxx -c「命令」,但它會在執行命令後終止會話。我想在命令執行後保持該會話,用戶應該手動退出(鍵入exit)以關閉該會話並返回到腳本。

任何暗示將做..

在此先感謝....對你的建議..

回答

0

什麼是「應該留登錄到用戶交互的用戶/會話」是什麼意思?你想給用戶一個正常的shell提示符,以便他們可以輸入命令嗎?

要做到這一點,您需要單獨啓動一個shell。嘗試:

#!/bin/bash 
echo Doing stuff... 
echo Starting shell. Type "exit" when done. 
sudo su - -c bash 
echo Thanks for playing! 

這將啓動一個子shell用戶。如果子shell終止(通常在用戶鍵入exit/Ctrl-D時),腳本將繼續。

+0

非常感謝你的回答。 – srikant 2010-08-18 05:49:19

+0

我想導出一些ailas到新的會話,有沒有辦法做到這一點,我已經嘗試別名-x但不工作。 – srikant 2010-08-18 08:54:45

0

可能最簡單的方法是將bash作爲命令列表中的最終命令。

+0

非常感謝你的回答。 – srikant 2010-08-18 05:49:47

+0

我想導出一些ailas到新的會話,有沒有辦法做到這一點,我已經嘗試過別名-x但不工作。 – srikant 2010-08-18 08:55:11

+0

我不認爲你可以通過別名 - 蘇阻礙。無論如何'su -'都會啓動一個登錄會話。 – 2010-08-18 13:53:21