目前我正在使用这样的命令
$ teststring=$(cat foo.txt 2>/dev/null)
无论文件是否存在,都有无输出,就像我想要的那样。如果文件不存在,以下命令似乎没有办法禁止输出。
$ teststring=$(<foo.txt)
bash: foo.txt: No such file or directory
答案 0 :(得分:2)
{ teststring=$(<foo.txt); } 2>/dev/null
简单的解释是在重定向之前执行扩展。
技术解释是Bash的重定向/分配顺序存在spec违规。这种特殊情况是允许的异常,但这不是所有shell中的问题,并且行为可能因上下文而异。无论如何,上述解决方法应始终有效。