gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 02:32:33 24 4
gpt4 key购买 nike

bash 中使用以下命令:

python myscript.py filename_pattern*

我在两台 Linux 机器上得到了两个不同的 sys.argv:

  • 机器 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 行为不同?

最佳答案

这是因为在你的一台机器中,在文件夹中,没有可以匹配模式的文件。因此,当发生这种情况时,* 仍然存在。您可以使用一台计算机进行测试,无论文件是否匹配模式。还有另一个原因,shell 选项 nullglob 被禁用。您可以阅读 GNU bash reference为此。

关于python - Bash 是否在我的 python 命令行参数中扩展了 "*"字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17586941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com