我遇到了$-
并发现它用于确定为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 ,但我不确定如何以及为什么。
我试图谷歌重写旗帜,但没有发现任何(可能因为我的搜索关键字不正确)。
任何有关此信息都会有所帮助。谢谢: - )
答案 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
。