Kornshell变量定义:什么是FOO?

时间:2013-04-09 15:23:38

标签: shell

我在kornshell脚本中找到了一行代码:

foo=`basename ?BAR?`

问号是什么意思?

谢谢

1 个答案:

答案 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