我有一个问题与第三方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只显示与您输入的完全相同的模式。