Получение и"команда не найдена ошибка" ошибка при сравнении двух строк в bash

Весь мой сценарий в настоящее время это:

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

и если я введите

TestSelect.sh

я вам

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

как я могу это исправить?

Комментарии к вопросу (4)
Решение

Это проблема:

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

Требуется наличие пробелов внутри квадратных скобок, использовать его как это:

[[ "$variable" == "$blanko" ]] && echo "Nichts da!" || echo "$variable"
Комментарии (7)

На соответствующую записку, требуется наличие пробелов вокруг [ ], а также:

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

Обратите внимание, что переменные должны быть заключены в двойные кавычки внутри [ ], чтобы предотвратить разбиение на слова и подстановка. Двойные кавычки также помогают при любой из переменных по сравнению не установлено - оболочки будут бросать синтаксическую ошибку в противном случае.

Посмотрите на следующий пост, чтобы понять, зачем нужны пробелы вокруг [ ]:

Еще похожие сообщение, что переговоры о других синтаксических элементов, которые также нужны пробелы:

Наконец, этот пост говорит о разнице между [[ ]] и [ ]:


Связанные:

Комментарии (0)

Просто используйте #!/бин/баш на верхней части скрипта, если вы используете bash скриптов, таких как:если [[раздел $ = = и" раздел/dev/sda2-то" ]]; затем, чтобы сравнить строку и запустить скрипт ./scriptname.sh или Баш scriptname.sh

Комментарии (0)