ファイルが存在するかどうかを確認し、利用できない場合は作成するコマンドを以下に示します。
if test "${LOG_FILE:=}x" != "x"; then
touch $LOGAP
exit_code=$?
fi
このスクリプトを理解するのを手伝ってください"${LOG_FILE:=}x" != "x"
。exixts かどうかをチェックするためにテスト条件がどのように使用されるかを教えてください。私はbashシェルを使用しています。
基本的な考え方スクリプトは、変数が設定されている
かどうかをチェックします。$LOG_FILE
そうであれば、 に保存されている名前のファイルに触れます$LOGAP
。
説明
分割してみましょう:
test == if
そう
if test "${LOG_FILE:=}x" != "x"; then
と同じです
if [ "${LOG_FILE:=}x" != "x" ]; then
1 つのテストを行いましょう。
LOG_FILE="FILE_TEST"
echo "${LOG_FILE:=}x"
出力します
FILE_TESTx
したがって、変数LOG_FILE
が設定されているかどうかのチェックが行われます。設定されている場合、
[ "${LOG_FILE:=}x" != "x" ]
になります
[ "FILE_TESTx" != "x" ]
これは本当です。
LOG_FILE
が設定されていない場合、
[ "${LOG_FILE:=}x" != "x" ]
になります
[ "x" != "x" ]
これは誤りです。
つまり、x
何かを始めることです。あなたはそれをに変更することができます
[ "${LOG_FILE:=}HELLO_MY_NAME_IS_BLABLA" != "HELLO_MY_NAME_IS_BLABLA" ]
最後に、あなたは
touch $LOGAP
これはtouch
(ファイルが作成されていない場合は作成し、既に存在する場合は変更日を更新します)。また、変数$LOGAP
を設定する必要があります。
ファイルが存在するかどうかを確認する最速の方法は次のとおりです。
if [ ! -f /tmp/foo.txt ]; then
...
fi