Mon script entier est actuellement ceci:
#!/bin/sh
clear;
blanko="";
# Dummy-Variablen
variable=Testvariable;
if [[$variable == $blanko]];
then
echo "Nichts da!"
else
echo $variable
fi
et si j'entre
TestSelect.sh
je reçois
/usr/bin/TestSelect.sh: line 6: [[Testvariable: command not found
Testvariable
comment puis-je réparer cela?
C'est un problème:
if [[$variable == $blanko]];
Les espaces sont requis entre crochets, utilisez-le comme ceci:
[[ "$variable" == "$blanko" ]] && echo "Nichts da!" || echo "$variable"
Sur une note connexe, des espaces sont nécessaires autour de [ ]
ainsi que:
if [ "$variable" = "$blanko" ]; then
# more code here
fi
Notez que les variables doivent être placées entre guillemets doubles à l'intérieur de [ ]
pour empêcher le fractionnement et la suppression de Word. Les guillemets doubles sont également utiles lorsque l'une des variables comparées n'est pas définie. Sinon, Shell générera une erreur de syntaxe.
Regardez le post suivant pour comprendre pourquoi nous avons besoin d'espaces autour de [ ]
:
Un autre article connexe qui parle d'autres éléments de syntaxe qui ont également besoin d'espaces:
Enfin, cet article parle de la différence entre [[ ]]
et [ ]
:
En relation:
Utilisez simplement #!/bin/bash
En haut du script si vous utilisez un script bash tel que: if [[ $partition == "/dev/sda2" ]]; then
Pour comparer une chaîne et exécuter le script avec ./scriptname.sh
Ou bash scriptname.sh