1

bash スクリプトで変数を渡そうとしていますがnawk、実際には$commentValue変数の内容を出力していません。printf ステートメントの最後の部分を除いて、すべてがうまく機能します。ありがとう!

echo -n "Service Name: "

read serviceName

echo -n "Comment: "

read commentValue

for check in $(grep "CURRENT SERVICE STATE"  $nagiosLog |grep -w "$serviceName" | nawk -F": " '{print $2}' |sort -u ) ; do
    echo $check | nawk -F";" -v now=$now '{ printf( "[%u]=ACKNOWLEDGE_SVC_PROBLEM;"$1";"$2";2;1;0;admin;$commentValue"\n", now)}' >> $nagiosCommand

done
4

1 に答える 1

2

$commentValueは への呼び出し内にあるため、 の変数ではなく、nawkの変数と見なされます。にはそのような変数がないため、何も得られません。変数に対して行ったのと同じように、最初にスイッチを使用して変数「内部」を渡す必要があります。すなわち:nawkbashnawknawk-vnow

... | nawk -F";" -v now=$now -v "commentValue=$commentValue"

$commentValue引用符に注意してください -空白が含まれている場合に必要です。

于 2011-08-19T21:16:04.090 に答える