GNU/Linux >> Belajar Linux >  >> Linux

Bash/sh pernyataan 'jika lain'

Perhatikan bahwa jika Anda ingin menentukan apakah suatu variabel disetel, Anda mungkin tidak ingin menggunakan if/else atau test ([). Lebih umum melakukan hal-hal seperti:

# Abort if JAVA_HOME is not set (or empty)
: ${JAVA_HOME:?JAVA_HOME is unset}

atau

# report the value of JAVA_HOME, or a default value
echo ${JAVA_HOME:-default value}

atau

# Assign JAVA_HOME if it is unset (or empty)
: ${JAVAHOME:=default value}

if [ -z $JAVA_HOME  ]  
then  
    echo $JAVA_HOME  
else  
    echo "NO JAVA HOME SET"  
fi

Anda mengalami batasan bodoh tentang cara sh memperluas argumen. Baris 3 skrip Anda sedang diperluas ke:

if [ != ]

sh yang mana tidak tahu apa yang harus dilakukan dengan. Cobalah peretasan jahat ini untuk ukuran:

if [ x$JAVA_HOME != x ]

Kedua argumen harus tidak kosong, jadi kita hanya akan melempar x ke keduanya dan lihat apa yang terjadi.

Alternatifnya, ada operator terpisah untuk menguji apakah sebuah string tidak kosong:

if [ !-z $JAVA_HOME ]

(-z menguji apakah string berikut kosong.)


-n dan -z opsi adalah tes yang harus digunakan di sini:

if [ -n "$JAVAHOME" ]; then
    echo "$JAVAHOME";
else
    echo "\$JAVAHOME not set";
fi

Linux
  1. 4 Contoh Pernyataan Bash If ( If then fi, If then else fi, If elif else fi, Nested if )

  2. Cetak output dari pernyataan cat dalam loop skrip bash

  3. Apakah ada pernyataan goto di bash?

  1. Cara Menggunakan if else Conditionals Statement di Bash Script

  2. Bagaimana Menggemakan Bang!?

  3. Menggunakan Pernyataan Kasus di Bash

  1. Pernyataan Bash If-Else Dengan Contoh

  2. 4 Contoh Pernyataan Awk If ( if, if else, if else if, :? )

  3. 5 Contoh Pernyataan Kasus Bash