我正在读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 的交互式提示符处手动输入的。