Unix Shell Flags

时间:2015-06-22 10:21:18

标签: shell unix set

我遇到了$-并发现它用于确定为shell设置的标志。所以我只是做了echo $-并且它给了我 ism 。现在 i 用于交互式shell m 用于监控模式但我不知道 s 的含义。

此外我有示例脚本test.sh如下

#!/bin/ksh

echo "Hi I am shell and I am about to figure out the flags set for me :-)"

echo $-

当我执行这样的脚本时 - ./test.sh我将标志设为 h ,但执行sh -x test.sh时  我正在 xh 。我认为 x 来自 sh -x ,但我不确定如何以及为什么。

我试图谷歌重写旗帜,但没有发现任何(可能因为我的搜索关键字不正确)。

任何有关此信息都会有所帮助。谢谢: - )

1 个答案:

答案 0 :(得分:1)

您在脚本中使用Korn shell,您是否也以交互方式使用它?

man ksh

是你的朋友。

-      Options supplied to the shell on invocation or by the set
                 command.

搜索Invocation,这些设置的正确用语是选项(不是标记)。

是的,x来自set -x。这是set -o xtrace的快捷方式。要查看所有这些选项及其当前设置set -o(请注意,只有少数选项具有单个字符快捷键)。试试

set --man

在命令行上(如果你有一个非常旧版本的ksh,那就不行了)。

-s只是意味着命令来自stdin