2010-08-17 52 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