当文件不存在时,打印结果时出现问题。假设我在bash中使用此代码
v1=`cat /ieee80211/phy2/rcstats`
echo $v1
当文件存在时,它将显示如下的值
0.8
0.6
0.3
但是当文件不存在时,它只会显示:
cat: /ieee80211/phy2/rcstats: No such file or directory
如何将该警告更改为1.0
?
我所知道的,我就是这样做的
if [! -f $v1]; then
echo "1.0"
fi
但结果只是在文件存在时打印1.0
,并且警告仍然显示
我该怎么办?谢谢
答案 0 :(得分:4)
[
是一个命令。它需要它与第一个参数之间的空格。
if [ ! ... ]; then
^
here
答案 1 :(得分:1)
在这种情况下,最好的错误处理是检查文件是否存在,如果存在,请执行cat
,而不是相反。
像这样:
file="/ieee80211/phy2/rcstats"
if [ -f $file ]
then
v1=$(< $file)
fi
答案 2 :(得分:0)
如果您不想处理文件不存在的情况,您可以使用:
{ v1=$( </ieee80211/phy2/rcstats ) ; } 2>/dev/null
echo "$v1"
注意。避免使用反引号,而是使用$(...)
。