Unix 在Shell脚本中使用su

Unix 在Shell脚本中使用su,unix,Unix,我正在编写一个shell脚本,在这种情况下,脚本将改变用户,比如su-xxx,然后它必须执行一些命令/脚本,并且应该保持登录到该用户/会话以进行用户交互。一旦用户输入exit,它应该退出该会话并返回到脚本 我尝试过使用su-xxx-c“commands”,但它会在执行命令后终止会话。我想在执行命令后继续该会话,用户应该手动退出(键入exit)以关闭该会话并返回脚本 任何暗示都行 提前感谢…您的建议。什么是“应该保持登录到该用户/会话以进行用户交互”的意思?是否要为用户提供常规的shell提示,以

我正在编写一个shell脚本,在这种情况下,脚本将改变用户,比如su-xxx,然后它必须执行一些命令/脚本,并且应该保持登录到该用户/会话以进行用户交互。一旦用户输入exit,它应该退出该会话并返回到脚本

我尝试过使用su-xxx-c“commands”,但它会在执行命令后终止会话。我想在执行命令后继续该会话,用户应该手动退出(键入exit)以关闭该会话并返回脚本

任何暗示都行

提前感谢…您的建议。

什么是“应该保持登录到该用户/会话以进行用户交互”的意思?是否要为用户提供常规的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时),脚本将继续。

最简单的方法可能是启动
bash
,作为命令列表中的最后一个命令。

非常感谢您的回答。我想将一些AILA导出到新会话,有什么方法可以做到这一点吗,我试过alias-x但不起作用。非常感谢你的回答。我想将一些Aila导出到新会话,有没有办法,我试过alias-x但不起作用。我不认为你可以传递别名-su会碍事
su-
无论如何都将启动登录会话。您可以为bash会话编写一个脚本以便加载?有没有办法将别名导出到subshell?与ksh