ifステートメントに複数の単項演算子を含めることは可能ですか。エラーが発生するコードスニペットは次のとおりです。
ここでコードを修正してください。
if [ -f $input_file ] -a [ -f $output_file ] -a [ -f $log_file ] ]
then
### Some Code here
fi
ifステートメントに複数の単項演算子を含めることは可能ですか。エラーが発生するコードスニペットは次のとおりです。
ここでコードを修正してください。
if [ -f $input_file ] -a [ -f $output_file ] -a [ -f $log_file ] ]
then
### Some Code here
fi
if [ -f "file1" -a -f "file2" -a "file3" ]; then
#some code
fi
Bashのダブルブラケットを使用する場合は、次のことができます。
if [[ -f "$input_file" && -f "$output_file" && -f "$log_file" ]]
ここに示されている他のオプションよりも読みやすくなっています(ただし、これは主観的なものです)。ただし、他にも利点があります。
また、ghostdog74が示すように、ファイル名を含む変数は常に引用符で囲む必要があります。
[ ... ]
演算子は、のショートカットとしてのみ表示できます test ...
。オプションは同じように使用されます。
したがって、あなたの場合、ghostdog74の方法を書くか:
if [ -f $input_file ] && [ -f $output_file ] && [ -f $log_file ]
then
### Some Code here
fi
[
はコマンドであり、if
ステートメントの一部ではありません。そのため、誤って実行しようとするのではなく、適切な引数をそれぞれ渡す必要があります。
if [ arg1 arg2 arg3 arg4 ... ]
then