为什么当前工作目录中存在 "" 文件会改变变量处理的行为



我有一个问题与第三方ksh脚本。发现,由于文件名为"">

下面是一个简单的测试用例:
$ mkdir -p ~/dir1 && cd ~/dir1 && touch '' && x="* a" && echo $x
 a
$ mkdir -p ~/dir2 && cd ~/dir2 && x="* a" && echo $x
* a

问题是,为什么出现""工作目录中的文件更改结果。这是意料之中的吗?

谢谢。

t .

看起来像预期的行为。

如果您希望在两种情况下都有相同的行为,可以在脚本中使用set -o noglob,或者使用-f选项运行脚本以禁用文件名替换。

默认情况下,在插入时*是一个特殊字符,因此将匹配任何存在的文件(在您的情况下,dir1将只包含一个具有反斜杠字符名称的实际文件)

第二个目录dir2没有真正的文件,所以ksh只显示与您输入的完全相同的模式。

相关内容

  • 没有找到相关文章

最新更新