でelse文は、私はCPUとディスクI/Oの値を取得するために、以下のコードインラインbashの
iostat -x 1 2 | sed 's/,/./g' | awk '/^avg-cpu/ {c++; a=2}
c==2 && a && !--a {printf ("%s,%s,%s,", $1, $3, $4)}
c==2 && /^sda/ {printf ("%s,", $14)}
c==2 && /^sdb/ {printf ("%s,", $14)}
c==2 && /^nvme0n1/ {printf ("%s,",$14)}'
を実行する場合。私が今しようとしているのは、nvmディスクがあるかどうかのチェックです。もしそのファイルが存在すればutilを出力します。そうでなければ-1.00を出力します。
私は
if [ c==2 && /^nvme0n1/ ] then {printf ("%s,",$14)}; else {printf -1.00}'
を試してみましたが、私は私に、複数の1.00を与える
awk: cmd. line:5: if [ c==2 && /^nvme0n1/ ] then {printf ("%s,",$14)}; else {printf -1}
awk: cmd. line:5: ^syntax error
awk: cmd. line:5: if [ c==2 && /^nvme0n1/ ] then {printf ("%s,",$14)}; else {printf -1}
awk: cmd. line:5: ^syntax error
awk: cmd. line:5: if [ c==2 && /^nvme0n1/ ] then {printf ("%s,",$14)}; else {printf -1}
awk: cmd. line:5: ^syntax error
と
c==2 && !/^nvme0n1/ {printf ("%s,",1.00)}'
を取得しています、私は毎回、各1.00は見つけることができないと思いますそれ。
残念ながら、私はあなたがディスクのスループット使用率を取得しようとしているか-1
がawk
では利用できませんのようですねShellCheck
:このコードは、さらに、既定値を設定する特殊
BEGIN
ブロックを使用します。完全なエラーメッセージを投稿してください。 – Rahulあなたのコードには複数の問題があります。なぜそれがうまくいかないのかを尋ねる前に、shellcheck.netを通して実行して、より簡単に修正できるものを修正してください。 – chepner
@chepnerスペースではないので重複しません。 – jimakos17