Bash是否在我的python命令行参数中扩展了"*"字符?

den*_*gos 4 python bash

使用以下命令bash:

python myscript.py filename_pattern*
Run Code Online (Sandbox Code Playgroud)

sys.argv在两台Linux机器上有两个不同的:

  • 机器A: sys.argv[1] = filename_pattern*
  • 机器B: sys.argv[1] = filename_pattern-2013-06-30

注意:filename_pattern-2013-06-30是我当前目录中的文件.

我的一位同事告诉我那是邪恶的bash.但我检查bash在两台机器都是同一版本,我查了一下~/.bashrc,/etc/bashrc,/etc/profile.d/*.sh太.

任何人都可以指出两个相同版本的bash行为有何不同?

zha*_*gyu 6

这是因为在你的一台机器中,在文件夹中,没有任何文件可以匹配模式.所以,当这种情况发生时,*遗体.您可以使用一台计算机进行测试,无论文件是否与文件匹配.还有另一个原因,shell选项nullglob被禁用.您可以阅读GNU bash参考.