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