0

当文件不存在时,我无法打印出结果。假设我在 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,并且警告仍然出现

我应该怎么办?谢谢

4

3 回答 3

4

[是一个命令。它需要在它和它的第一个参数之间有空格。

if [ ! ... ]; then
    ^
   here
于 2013-07-02T07:49:04.273 回答
1

在这种情况下,最好的错误处理是检查文件是否存在,如果存在,则执行cat,而不是相反。

像这样:

file="/ieee80211/phy2/rcstats"
if [ -f $file ]
then
    v1=$(< $file)
fi
于 2013-07-02T07:48:19.763 回答
0

如果您不想处理文件不存在的情况,您不妨使用:

{ v1=$( </ieee80211/phy2/rcstats ) ; } 2>/dev/null
echo "$v1"

笔记。避免使用反引号,$(...)而是使用。

于 2013-07-02T07:53:24.853 回答