Bash Shell“onecmd”选项使用目的

Bash Shell“onecmd”选项使用目的

我读了手册页,但我不明白 bash 选项的目的onecmd。如果我使用该set -o onecmd命令,shell 会立即退出。我的期望是它在退出之前等待我再输入一个命令,但这并没有发生。

那么这个选项和exit命令一样吗?

为什么 bash 提供这个选项?

有人可以给我一个如何正确使用此选项的例子吗?

答案1

至于为什么,我不知道,但是注意,你可以在启动shell时在命令行上设置选项,例如这里,内壳确实读取了一个命令,然后退出

bash$ PS1='onecmd$ ' bash -t 
onecmd$ echo moi;
moi
bash$

而且它在读取一个命令后并没有真正退出,而是读取并执行至少一个完整的命令线。这与两个命令相同:

bash$ PS1='onecmd$ ' bash -t 
onecmd$ echo moi; echo hei
moi
hei
bash$

当然,使用 eg&&或将整组命令包装起来if true; then ... fi也可以。

相关内容