让“bash -c”在提示时保持准备状态

让“bash -c”在提示时保持准备状态

我们怎样才能bash -c保持 shell 提示符,而不是退出?

答案1

如果你想进入交互模式,但要事先执行一些脚本。或者执行脚本并保持交互模式。那么钥匙--init-file就适合你了。

假设你有hello.sh

#!/bin/bash
echo "Hello"
export PS1=subshell@

$ bash --init-file hello.sh
Hello
subshell@

答案2

另一种方法是使用expect已在多种语言中实现的。在原始 TCL 中,可以使用:

#!/usr/bin/env expect

# run the shell
spawn -noecho bash

# blindly send the input in. another way would be to "expect" on the
# prompt, but that's more complicated
send -- "echo foo\n"
send -- "echo bar\n"

# turn interaction with the program over to the user
interact

缺点包括expect进程挥之不去,优点包括这(或多或少)适用于任何程序,无论它是否支持某种初始命令列表功能。

相关内容