以下のように、Unixのデバッグ方法を教えてください。 以下のコードが何をしているかを理解するには、ステップバイステップで行います。
if [ ! -f $R_C_S_L/j_r_d* ]
then
echo 0>$R_C_S_L/j_r_d
fi
以下のように、Unixのデバッグ方法を教えてください。 以下のコードが何をしているかを理解するには、ステップバイステップで行います。
if [ ! -f $R_C_S_L/j_r_d* ]
then
echo 0>$R_C_S_L/j_r_d
fi
さてあなたは、ちょうど左から右にそれを読む:
if [ ! -f $R_C_S_L/j_r_d* ]
私はif
と[
がクリアされていると思いますか?
man [
アップ
man test
をもたらし、そしてそこに我々は読む:
NAME
test - check file types and compare values
SYNOPSIS
test EXPRESSION
test
[ EXPRESSION ]
[ ]
[ OPTION
をし、さらに下:
-f FILE
FILE exists and is a regular file
ファイルを?
$R_C_S_L/j_r_d*
は$を示し、それは可変で、左から解析されます。変数を自分で書いて、それらを一緒にグルーミングすることから、それはLのみを含むことになるので、$ R_C_S_Lは変数、次に/はディレクトリ区切り文字、j_r_d *はglobbingパターンを持つ名前の一部です。
$ R_C_S_Lで参照される、j_r_d *と一致するファイルを含むディレクトリが検索されます。これがテストです。テストが失敗した場合、内部が完了します。
echo 0 > $R_C_S_L/j_r_d
このファイルが存在しない場合は、上記のパターンと一致する最短のファイルに0を書き込みます。
優秀な説明は大変ありがとうございます。 – user840963
[
と]
述語を囲みます。!
は、NOTの述語であり、真から括弧の間にあるものはすべて無効になります。-f
は述語であり、 'ファイルは存在しますか?'$R_C_S_L
は、他の場所で定義された変数です。*
はワイルドカードです。then
はifブロックを開始します。fi
はifブロックを終了します。echo {stuff}
が画面に画像を印刷します。echo {stuff} > {file}
をファイルにリダイレクトします。は、上記のステートメントは、このように翻訳することができます。
「、そして書き込みj_r_d 『0』ファイルj_r_d
内にディレクトリ$ R_C_S_Lにある存在と文字で始まるファイルが存在する場合$R_C_S_L
ディレクトリ。
$ man bash
を参照してください。
そのようなファイルがない場合は、そのことを意味します。 :) –
はい私はまたそれのように理解したが、素晴らしい説明はありがとう。 – user840963
それは
if [ I_AM_TRUE ]
then
DO_ME
fi
then
...なステートメント続い/場合ではfi
は、ソートの閉じ括弧のようなものです、ソートの開口ブラケットのようなものです。
-f FILENAME
がFILENAMEがファイルで、 を入れたときにTRUEになります。その式の前に真理値を反転させ...
ので! -f FILENAME
FILENAMEは
echo
プリントアウトのものを、シンボル>
はどこかにそれをその原料を受け取り、再指示しながら、ファイルでないときTRUEです。それがすべて一致するように、VARの値は最後に$VAR
...
を入力して頂いております、*、ワイルドカードである(何も含まないの!)
特定のファイルの接頭辞かどうかをチェックのようなので、それが見えます使用されていない場合は、ファイルを作成し、ファイルにゼロを入れます。あなたがテストすることができ、物事のより完全なリストについては
内部/その文がhttp://en.wikipedia.org/wiki/Test_(Unixをチェックアウト)またはプロンプトでman test
上に述べた場合。それはそれを行う人的な方法でしょう。
'man test' .... –
あなたの環境に' R_C_S_L'という変数がありますか、それともスクリプトの上に定義されていますか?これは単純に「このパスと一致するファイルがない場合は空のファイルを作成する」ですが、どのパスであるかを知るコンテキストはありません。うまくいけば、誰かがこれを説明しているmanページであなたを指すこともできます(bash?test?) – Rup
こんにちはRUP、R_C_S_Lは環境からエクスポートされたパラメータです。このパスに一致するファイルがない場合、空のファイル "を教えてください。 -f ...]とこれらのようなステートメントは?答えてくれてありがとう。 – user840963