Mendapatkan "perintah tidak ditemukan" kesalahan saat membandingkan dua string di Bash

Seluruh Naskah saat ini:

#!/bin/sh   
clear;   
blanko="";   
# Dummy-Variablen
variable=Testvariable;   
if [[$variable == $blanko]];
then   
  echo "Nichts da!"   
else   
  echo $variable   
fi

dan jika saya masukkan

TestSelect.sh

saya mendapatkan

/usr/bin/TestSelect.sh: line 6: [[Testvariable: command not found   
Testvariable

bagaimana saya bisa memperbaiki ini?

Mengomentari pertanyaan (4)
Larutan

Ini adalah masalah:

if [[$variable == $blanko]];

Ruang-ruang yang diperlukan di dalam kurung, menggunakannya seperti ini:

[[ "$variable" == "$blanko" ]] && echo "Nichts da!" || echo "$variable"
Komentar (7)

Pada catatan terkait, ruang yang diperlukan sekitar [ ] juga:

if [ "$variable" = "$blanko" ]; then
  # more code here
fi

Perhatikan bahwa variabel harus tertutup dalam tanda kutip ganda dalam [ ] untuk mencegah word membelah dan globbing. Tanda kutip ganda juga membantu ketika salah satu dari variabel-variabel yang dibandingkan tidak diatur - shell akan melemparkan kesalahan sintaks sebaliknya.

Lihat posting berikut untuk memahami mengapa kita membutuhkan ruang sekitar [ ]:

Lain yang berhubungan dengan posting yang berbicara tentang sintaks lainnya unsur-unsur yang perlu ruang serta:

Akhirnya, posting ini berbicara tentang perbedaan antara [[ ]] dan [ ]:


Terkait:

Komentar (0)

Hanya menggunakan #!/bin/bash pada tope script jika anda menggunakan bash scripting seperti: if [[ $partisi == "/dev/sda2" ]]; maka untuk membandingkan string dan menjalankan script dengan ./scriptname.sh atau bash scriptname.sh

Komentar (0)