相关疑难解决方法(0)

使用初始命令运行交互式 bash 子外壳,而无需立即返回(“超级”)外壳

我想运行一个 bash 子 shell,(1) 运行一些命令,(2) 然后留在那个子 shell 中按照我的意愿去做。我可以单独做这些:

  1. 使用-c标志运行命令:

    $> bash -c "ls; pwd; <other commands...>"
    
    Run Code Online (Sandbox Code Playgroud)

    但是,它会在命令执行后立即返回到“超级”shell。我也可以只运行一个交互式子shell:

  2. 启动新bash进程:

    $> bash
    
    Run Code Online (Sandbox Code Playgroud)

    它不会退出子shell,直到我明确地说出来......但我无法运行任何初始命令。我找到的最接近的解决方案是:

    $> bash -c "ls; pwd; <other commands>; exec bash"
    
    Run Code Online (Sandbox Code Playgroud)

    这是可行的,但不是我想要的方式,因为它在一个子 shell 中运行给定的命令,然后打开一个单独的命令进行交互。

我想在一行上做到这一点。一旦我退出子外壳,我应该返回到常规的“超级”外壳,而不会发生任何事故。一定有办法~~

注意:我不是在问什么......

  1. 不问从哪里获得 bash 手册页
  2. 不问如何从文件中读取初始化命令......我知道如何做到这一点,这不是我正在寻找的解决方案
  3. 对使用 tmux 或 gnu 屏幕不感兴趣
  4. 对此不感兴趣。即,该问题是一般性的,而不是出于任何特定目的
  5. 如果可能的话,我想避免使用那种可以完成我想要的东西的变通方法,但是以一种“肮脏”的方式。我只想在一行上执行此操作。特别是,我不想做类似的事情xterm -e 'ls'

bash

134
推荐指数
6
解决办法
8万
查看次数

标签 统计

bash ×1