我尝试以下方法:
#!/bin/bash
var=$(< temp.temp) > /dev/null 2>&1
echo $var
我预计没有输出是否存在temp.temp。 但是当我尝试这些命令时,它仍然有输出。你可以帮忙吗?谢谢。
答案 0 :(得分:1)
var=$(< temp.temp) > /dev/null 2>&1
应该是
var=$(>/dev/null 2>&1 < temp.temp)
您为变量赋值并重定向该赋值的输出,这没有任何意义。
你需要的是首先重定向stdout
和stderr
,然后尝试从文件中读取,因为它从左到右解释,这意味着当你尝试阅读temp.temp
,stdout
和stderr
没有重定向,因此您会看到有关未找到文件或文件内容的消息
答案 1 :(得分:1)
像这样使用:
{ var=$(<temp.temp); } 2>/dev/null