我想运行一个 bash 子 shell,(1) 运行一些命令,(2) 然后留在那个子 shell 中按照我的意愿去做。我可以单独做这些:
使用-c
标志运行命令:
$> bash -c "ls; pwd; <other commands...>"
Run Code Online (Sandbox Code Playgroud)
但是,它会在命令执行后立即返回到“超级”shell。我也可以只运行一个交互式子shell:
启动新bash
进程:
$> bash
Run Code Online (Sandbox Code Playgroud)
它不会退出子shell,直到我明确地说出来......但我无法运行任何初始命令。我找到的最接近的解决方案是:
$> bash -c "ls; pwd; <other commands>; exec bash"
Run Code Online (Sandbox Code Playgroud)
这是可行的,但不是我想要的方式,因为它在一个子 shell 中运行给定的命令,然后打开一个单独的命令进行交互。
我想在一行上做到这一点。一旦我退出子外壳,我应该返回到常规的“超级”外壳,而不会发生任何事故。一定有办法~~
注意:我不是在问什么......
xterm -e 'ls'
bash ×1