run bash command in new shell and stay in new shell after this command executes

前端 未结 3 911
感动是毒
感动是毒 2020-12-02 20:41

I\'ve got a problem. I\'m searching for long time for this answer - how can I run command in new bash shell and stay in this NEW shell after this commands executes. So for e

3条回答
  •  北荒
    北荒 (楼主)
    2020-12-02 21:08

    For the case where the initial set of command is static and contain multiple commands, it is usually easier to use here documents to pass the initial commands, instead of constructing a script with series of echo commands.

    This approach helps when the commands contain quotes, or various expansions. With the quoted here-documents (the 3<<'__INIT__' ... '__INIT__') variant, no expansion of the here document text is performed, eliminating the need to quote specific part of the commands.

    Instead of

    bash --rcfile <(echo "export PS1='> ' && ls && command1 && command2")
    

    Use

    bash --rcfile /dev/fd/3 3<<'__INIT__'
    export PS1='> '
    ls
    command1
    command2
    __INIT__
    

提交回复
热议问题