请解释为什么最后四个echo语句显示1 4 5 6?我偶然碰到了一次,但我现在很好奇为什么会发生这种行为。
这些语句按预期工作(对我而言)。
$ echo [ 9876543210 ]
[ 9876543210 ]
$ echo [237890]
[237890]
Run Code Online (Sandbox Code Playgroud)
这些 echo 语句始终显示 1 4 5 6。这些数字有什么特别之处吗?
$ echo [9876543210]
1 4 5 6
$ echo [abcd9876543210ghi]
1 4 5 6
$ echo [-123456-]
1 4 5 6
$ echo [-7654321-]
1 4 5 6
Run Code Online (Sandbox Code Playgroud)
谢谢!
rm命令的角度来看的。这个问题是从echo命令的感知“奇怪行为”的角度来看的。两者的基本答案都是通配。搜索echo命令问题的人不会轻易找到rm问题,但更可能会在这里登陆。一个月前,我写了一个 Python 脚本来映射来自标准输入的 MAC 和 IP 地址。两天前我记住了它并用于过滤输出,tcpdump但由于拼写错误而出错。我打字
tcpdump -ne > ./mac_ip.py
Run Code Online (Sandbox Code Playgroud)
输出什么都没有。但是如果无法解析输入,输出应该是“未知”,所以我做了cat ./mac_ip.py并找到了所有tcpdump数据而不是程序。然后我意识到我应该使用
tcpdump -ne | ./mac_ip.py
Run Code Online (Sandbox Code Playgroud)
有什么办法可以恢复我的程序吗?无论如何,我可以再次编写我的程序,但是如果它再次发生在更重要的程序中,我应该能够做一些事情。或者有什么方法可以告诉输出重定向检查文件并警告它是否是可执行文件?