Ответ 1
Это проблема:
if [[$variable == $blanko]];
В квадратных скобках требуются пробелы, используйте их так:
[[ "$variable" == "$blanko" ]] && echo "Nichts da!" || echo "$variable"
В целом мой Script:
#!/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
как я могу это исправить?
Это проблема:
if [[$variable == $blanko]];
В квадратных скобках требуются пробелы, используйте их так:
[[ "$variable" == "$blanko" ]] && echo "Nichts da!" || echo "$variable"
В примечании, связанном с пробелами, также требуется [ ]
:
if [ "$variable" = "$blanko" ]; then
# more code here
fi
Обратите внимание, что переменные должны быть заключены в двойные кавычки внутри [ ]
, чтобы предотвратить расщепление слов и глобализацию. Двойные кавычки также помогают, когда ни одна из сравниваемых переменных не задана - в противном случае оболочка выдаст синтаксическую ошибку.
Посмотрите на следующий пост, чтобы понять, почему нам нужны пробелы вокруг [ ]
:
Еще один связанный пост, в котором говорится о других элементах синтаксиса, которые также требуют пробелов:
Наконец, в этом посте говорится о разнице между [[ ]]
и [ ]
:
Связанный:
Просто используйте #!/bin/bash
на вершине скрипта, если вы используете скрипты bash, например: if [[ $partition == "/dev/sda2" ]]; then
, чтобы сравнить строку и запустить скрипт с ./scriptname.sh
или bash scriptname.sh