この関数では何が起こっていますか?

この関数では何が起こっていますか?
log ()
{
  A=$1
  print "`date '+%m/%d/%y  %H:%M:%S'`: $A"  >> LOGFILE.txt
  print "$A"
}

これは、私たちの環境のほとんどのシェルスクリプトでロギング機能が使用される方法です。次のスクリプトで使用されました。

if ["blah" != "0"]
then
log "not a zero value"
fi

if条件が満たされると、ログ機能はどのように機能しますか?

ログ関数の各行の意味を説明できますか?

ベストアンサー1

kshあるいはzsh、両方が組み込みシェルを持っていることがわかったらprint役に立ちます。

  1. A=$1
  2. print "`date '+%m/%d/%y  %H:%M:%S'`: $A"  >> LOGFILE.txt
  3. print "$A"

行1:$ 1は「log()関数の最初のパラメーター」を意味します。したがって、最初のパラメータの値をlog「A」という変数に割り当てます。

行2:「Accent」(別名「back tics」)は、「含まれるコマンドを実行し、その出力を逆の文字列に置き換えます。$ Aは、「A」値という変数の値」を意味します。実行して文字列を設定し、date値を挿入しますA。シェルは通常、rvalue(割り当てられた名前)とlvalue(変数の内容)を区別します。

行3:「A」という変数の値を標準出力に書き込みます。

このlog関数は、shスクリプトのロギングを実行する非常に一般的な方法です。つまり、メッセージのコピーを日付スタンプファイルに書き込み、コピーを標準出力に書き込みます。 shスクリプトはターミナルウィンドウで実行され、メッセージはスクロールされますが、後でデバッグできるようにファイルにも表示されます。

ifステートメントのtrue句にあるlog関数の最初の型パラメータとして、文字列全体の「ゼロ以外の値」を渡しますlog。これは、行1の変数「A」に割り当てられた値です。

おすすめ記事