我在kornshell脚本中找到了一行代码:
foo=`basename ?BAR?`
问号是什么意思?
谢谢
答案 0 :(得分:3)
touch BAR ABAR ABARZ
ls ?BAR?
ABARZ
?
通常是匹配1个字符的shell通配符char,并且必须使用该1个字符位置,如上例所示。它就像'*'的1-char版本,匹配1个字符(必须在那里)。请注意,如果您更改为
ls ?BAR*
你得到像
这样的输出ABAR ABARZ
您的代码显示相同的行为
foo=$(basename ?BAR?)
echo $foo
ABARZ
这有意义吗?不是真的,但考虑到你给出了另一种可能解释的小上下文,原始脚本编写者正在使用?BAR?
作为占位符并告诉你“将其改为实际/有意义的值”。
其他可能有其他想法。
IHTH