終了していない正規表現と予期しない改行文字

終了していない正規表現と予期しない改行文字

awkコマンドの実行中にエラーが発生しました。

echo $(awk 'BEGIN {printf "%.2f\n",'$sizes'/1073741824}')GB >> $MAINS/logs/bks1

整数をサイズ(GB)に変換することです。しかし、このエラーが発生します

awk: cmd. line:1: BEGIN {printf "%.2f GB\n",/1073741824}
awk: cmd. line:1:                            ^ unterminated regexp
awk: cmd. line:1: BEGIN {printf "%.2f GB\n",/1073741824}
awk: cmd. line:1:                                       ^ unexpected newline or end of string

時にはうまくいく

このコマンドを実行する前にスリープモードを追加する必要がありますか?時間をかけて助けてくださった皆さんに感謝します。

ベストアンサー1

変数が空の場合、sizes期待どおりに空の文字列に置き換えられます。スクリプトの関連部分でawkスラッシュで始まるすべての文字列は正規表現の始まりと予想されますが、他のスラッシュで終わる場合にのみ有効な正規表現になります。sizesこれを行うには、スクリプトが空でないことを確認する必要があります。

set -o nounsetスクリプトで定義されていない(null以外の)変数に関する通知を受け取り、-o errexitこれらのエラーが発生した場合はそれらを組み合わせてスクリプトを停止します。

おすすめ記事