我可以在启动交互式 bash 会话之前指定自定义命令吗?

我可以在启动交互式 bash 会话之前指定自定义命令吗?

请注意:虽然这个问题本质上是一样的这个链接的问题,我没有将其标记为“解决我的问题”,因为那里提供的答案不是很令人满意。我在下面接受的答案更干净、更简单。看一看!

我知道如何传递bash要执行的自定义命令,例如:

bash -c "/bin/echo hello"

当我这样做时,bash执行 的参数-c然后退出。我怎样才能让它在完成后给我一个交互式提示?添加-i没有效果。我不想将自定义命令写入.bashrc始终读取的文件中。

我一直在凑合使用bash -c "commands; exec bash -i",但它并不理想,因为它启动了bash两次。有没有办法bash只启动一次就能达到相同的效果?

答案1

您可以使用--init-file这样的选项bash --init-file <(echo "echo hello")。这.bashrc根本不会来源您的文件。如果您想要.bashrc源文件,您可以像这样添加bash --init-file <(echo ". ~/.bashrc; echo hello")。或者您可以将所有要执行的命令放在一个文件中并使用bash --init-file file_with_commands

相关内容