非常に混乱した初心者として何が起こっていますか?もし声明[ ], [[ ]], ( ), ( ( ))
なぜ?
if [ $jengnr -eq 1 ]; then
そうですね。しかし、デュアルテイクは次のとおりです。
if [[ -f "$jdir$object.eng.dat" ]]; then
それから私はifの中に入れ子になったifが(())(私のコードではない)でなければならないことを読んだ。
#!/bin/bash
# Nested if statements
if [ $1 -gt 100 ]
then
echo Hey that\'s a large number.
if (( $1 % 2 == 0 ))
then
echo And is also an even number.
fi
fi
しかし、if [[]]ステートメント内のifステートメントの中に[[]]を使用しました。これはうまくいきますか?
4つの異なるifが何であるか、誰であるか、なぜ説明できますか?
..いつ正しく使うべきですか?
答え1
[
これは、シェルテストを実行する移植可能な方法であるシェルテストコマンド(時々組み込みコマンド)です。
[[
これはしばしば「拡張テスト」と呼ばれ、主にkshとbashでのみサポートされ、シェルテストよりも多くの機能を可能にしますが、移植性が低下します。
(
これはまったくテストコマンドではありません。単一の括弧はサブシェルを生成します。 ifステートメントはそれに続くコマンドの戻りコードのみを評価するため、 を使用しても機能しますが、サブシェルからの戻りのみを評価しますif ( command ); then
。
((
if
これにより、算術関連条件をテストする際に組み合わせて使用できるシェル算術が可能になります。
また、ネストされたifステートメントにはこれらの規則がないため、すべてのネストレベルでこれらのメソッドを組み合わせて使用できます。