使用';执行官';在bash_中,配置文件停止登录shell

使用';执行官';在bash_中,配置文件停止登录shell,bash,exec,linux-from-scratch,Bash,Exec,Linux From Scratch,我正在为lfs用户创建以下.bash_配置文件(从): exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash 执行su-lfs时,我得到: [1]+ Stopped su - lfs 执行fg将恢复lfs的用户shell。为什么会发生这种情况?这是因为exec在当前进程中执行代码。通常,命令在子shell/环境中执行。请尝试以下操作: $bash#打开第二个shell $exec false#关

我正在为lfs用户创建以下.bash_配置文件(从):

exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
执行
su-lfs
时,我得到:

[1]+  Stopped                 su - lfs

执行
fg
将恢复lfs的用户shell。为什么会发生这种情况?

这是因为
exec
在当前进程中执行代码。通常,命令在子shell/环境中执行。请尝试以下操作:

$bash#打开第二个shell
$exec false#关闭第二个shell
$echo$?#获取退出代码
$exit#关闭终端

这一点在这里并没有什么帮助。我经常使用
exec
,如果我通过Qt进程运行脚本,并且它应该在一段时间后结束,无论命令是否完成。

这是因为
exec
在当前进程中执行代码。通常,命令在子shell/环境中执行。请尝试以下操作:

$bash#打开第二个shell
$exec false#关闭第二个shell
$echo$?#获取退出代码
$exit#关闭终端

这一点在这里并没有什么帮助。我经常使用
exec
,如果我通过Qt进程运行脚本,并且它应该在一段时间后结束,不管命令是否完成。

我仍然不理解为什么在我的bash_概要文件场景中,执行
su-lfs
的进程会停止,然后我们回到父进程。这是不应该发生的,这应该根据linuxfromscratch的说明来工作。如果您想使用source.bash_profile,会发生什么<代码>源代码.bash\u配置文件;su root。如果按预期工作,将生成一个新的shell并忽略“su root”命令。请尝试删除
exec
。我不知道为什么会出现问题,但我认为
exec
是多余的。是的,但在这里使用
exec
的目的是确保一个“干净”的环境(参见www.linuxfromscratch.org/lfs/view/stable/chapter04/settingenvironment.html),我仍然不明白为什么在我的bash_概要场景中,执行
su-lfs
的进程停止,我们回到父进程。这是不应该发生的,这应该根据linuxfromscratch的说明来工作。如果您想使用source.bash_profile,会发生什么<代码>源代码.bash\u配置文件;su root。如果按预期工作,将生成一个新的shell并忽略“su root”命令。请尝试删除
exec
。我不知道你的问题为什么会出现,但我认为
exec
是多余的。是的,这是可行的,但在这里使用
exec
的目的是确保一个“干净”的环境(见www.linuxfromscratch.org/lfs/view/stable/chapter04/setingenvironment.html),