Bash -s 选项:“选项处理后不保留任何参数”

Bash -s 选项:“选项处理后不保留任何参数”

我正在读bash手册为了理解-s调用时的选项bash。第一句话说:

-s 如果存在此选项,或者选项处理后没有剩余参数,则从标准输入读取命令。

“选项处理后没有参数保留”是什么意思?最终,所有选项都将被处理,并且不会有任何选项/参数需要处理,对吧?

我需要知道使用bash -s和不使用(即bash)之间的区别。

答案1

以下将script使用参数arg1和运行arg2

bash script arg1 arg2

对于-s,会发生一些非常不同的事情:交互的shell 启动,bash 的任何剩余参数都不会被解释为命令,而仅被解释为位置参数:

$ bash -s arg1 arg2
$ echo "0=$0  1=$1  2=$2"
0=bash  1=arg1  2=arg2

在上面,echo "0=$0 1=$1 2=$2"是在新 shell 的交互式提示符处手动输入的。

相关内容