【发布时间】:2020-12-30 05:39:28
【问题描述】:
我有使用 tr 命令的旧脚本,并且在某些服务器上(我不知道有什么区别)这样的命令
echo ABCD | tr [A-Z] [a-z]
工作不正确 - 第二个参数的传递就像 a 而不是 [a-z] 如果我引用所有论点 - 它工作正常:
echo ABCD | tr '[A-Z]' '[a-z]'
此外,如果仅由 root 执行命令,则会看到不正确的行为,其他用户不会遇到此错误。
请告诉我这种行为的原因是什么。
UPD
ls -l [A-Z] [a-z]
ls: cannot access [A-Z]: No such file or directory
-rw-r--r--. 1 root root 4870 Mar 2 2018 a
【问题讨论】:
-
你是说
echo ABCD | tr [A-Z] [a-z]在非root用户执行时可以正常工作吗? -
您的工作目录中有一个名为
a的文件,不是吗? -
这两个命令在我的 Ubuntu 机器上都可以正常工作。
-
请将
ls -l [A-Z] [a-z]的输出添加到您的问题中。 -
顺便说一句,你不需要括号,
tr A-Z a-z就可以了。