現在awkを使用しているログファイルから値を取得する必要があります。数値をコンソールに印刷できますが、値を新しいファイルに入れようとすると何も起こりません。これは私が持っているものです。
sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -F $INPUT_FILE | awk '{ print $16 }' > $OUTPUT_FILE
//when command is run without > $OUTPUT_FILE i get my value eg 4000
ファイルには何も出力されないので、これはバッファリングの問題ではありません。ファイルが作成されましたが、新しいファイルに値が書き込まれませんでした。さらに、私が読んだ行を置き換え続ける他のスクリプトの行を読んでいるので、私の値は常に上書きされます。
だから私が持っていた問題を解決しました。解決策は、コマンドを変数に割り当て、その変数をファイルに書き込むことです。以前これを試したことがありますが、問題は=記号とコマンドの間に余分なスペースがあることです。これは操作コードです
value=`sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`
echo $value
echo $value > $OUTPUT_FILE
//will not work because of the space between "value= `sshpass"
// value= `sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`