当我们使用命令打印控制台设置时echo $-
,我们himBHs
默认输出。但是,当我们在任何脚本文件中运行相同的命令时,我们只会输出hB
.
root@root:~# echo $-
himBHs
root@root:~# ./abc.sh
hB
root@root:~#
我想知道的是,即使我们从/bin/bash
环境中运行脚本,为什么不应用相同的默认设置?
例如,当我使用/bin/bash
控制台上的命令启动一个新的子 shell 进程并列出设置时,我会得到 output himBHs
。
root@root:~# /bin/bash
root@root:~# echo $-
himBHs
当我尝试从shell 文件中执行相同的过程时,我得到的输出是“ hB ”。
root@root:~# ./abc.sh
hB
我已经尝试了使用 shebang 和没有 shebang 的相同过程,但是我的脚本文件是bash script_file
或者./script_file
如果我运行,它会给出相同的结果(hB
)。
我到底错过了什么?