我想运行一个bash子
shell,(1)运行一些命令,(2)然后保留在子shell中以便随意执行.我可以单独做这些事情:
>使用-c标志运行命令:
$> bash -c "ls; pwd; <other commands...>"
但是,在执行命令后,它会立即返回“超级”shell.我也可以运行一个交互式子shell:
>开始新的bash过程:
$> bash
在我明确说明之前它不会退出子shell但我无法运行任何初始命令.我发现的最接近的解决方案是:
$> bash -c "ls; pwd; <other commands>; exec bash"
它工作,但不是我想要的方式,因为它在一个子shell中运行给定的命令,然后打开一个单独的交互.
我想在一条线上做这件事.一旦我退出子shell,我应该回到常规的“超级”shell而不会发生任何事故.必须有办法~~
NB:我不是在问……
>不要问在哪里抓住bash手册页
>不要问如何从文件中读取初始化命令……我知道如何做到这一点,这不是我正在寻找的解决方案
>对使用tmux或gnu屏幕不感兴趣
>对此没有兴趣.即,问题是一般性的,而不是用于任何特定目的
>如果可能的话,我想避免使用那种能够实现我想要的工作方式,但却采用“肮脏”的方式.我只想在一条线上做这件事.特别是,我不想做像xterm -e’ls’这样的事情
这可以通过
temporary named pipes轻松完成:
bash --init-file <(echo "ls; pwd")