为什么命令替换之外的以下重定向不能抑制到 stderr 的输出:
OLD_DATE=$(date --date"three days ago") 2> /dev/null
而在命令替换中使用重定向的这个可以:
OLD_DATE=$(date --date"three days ago" 2> /dev/null)
答案1
看来是因为重定向适用于空的分配后的命令。例如,使用以下命令会得到相同的结果:
OLD_DATE=$(date --date"three days ago") true 2> /dev/null
这与没有分配的命令相同:
2> /dev/null
(是的,这是一个有效的命令行。)