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