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 に答える