
本を読んでいますLinuxのコマンドラインセクション27では、シェルスクリプトの作成方法を教えています。ファイル表現部分では、次のように言います。
スクリプトは定数FILEに割り当てられたファイルを評価し、評価が実行されたときの結果を表示します。このスクリプトに注目すべき2つの興味深いことがあります。まず、$ FILEパラメーターが式でどのように参照されるかを見てください。これは必須ではありませんが、パラメータが空になるのを防ぎます。 $ FILEのパラメータ拡張によってNULL値が発生すると、エラーが発生します(演算子は演算子の代わりに空ではない文字列として解釈されます)。
「演算子は演算子の代わりに空でない文字列として解釈されます」という内容を理解していません。誰かが私に例を与えることができますか?ありがとうございます。
元のコードは次のとおりです。
#!/bin/bash
# test-file: Evaluate the status of a file
FILE=~/.bashrc
if [ -e "$FILE" ]; then
if [ -f "$FILE" ]; then
echo "$FILE is a regular file."
fi
if [ -d "$FILE" ]; then
echo "$FILE is a directory."
fi
if [ -r "$FILE" ]; then
echo "$FILE is readable."
fi
if [ -w "$FILE" ]; then
echo "$FILE is writable."
fi
if [ -x "$FILE" ]; then
echo "$FILE is executable/searchable."
fi
else
echo "$FILE does not exist"
exit 1
fi
exit
答え1
値が$FILE
空の文字列であり、引用符でなければ、$FILE
コンテンツはにif [ -e $FILE ]; then
なりますif [ -e ]; then
。このコマンドの規則は、[
との間に値が1つしかない場合、値が空の文字列でない場合はtrueになり、空の文字列の場合はfalseになります(それによって取得されます)。[
]
if [ "" ]; then
else
参考にif [ -e "$FILE" ]; then
なり、if [ -e "" ]; then
その間[
には2つの値があるため、]
他のルールが適用されます。