Also raus Ich versuche, diesen wenn elif Code in UNIX mit „Bash-Skript“, und es gibt mir diese Ausgabebash Fehler „Befehl nicht gefunden“ bei der Verwendung, wenn mit „oder“ Operator
script[11]: pc4: command not found
script[14]: pc4: command not found
statt "-o" Ich hatte vorher "|" als "oder" Operator aber das hat nicht funktioniert. Auch ich Klammern hatte vor, aber ja ...
#!/bin/bash
host=`hostname`
test1="pc4"
test2="pc5"
prod1="t01"
prod2="t02"
prod3="t03"
prod4="t04"
path="/home/test1/test2/test3"
if "$host" = "$test1" -o "$host" = "$test2"
then
echo "test loaded"
elif "$host" = "$prod1" -o "$host" = "$prod2" -o "$host" = "$prod3" -o "$host" = "$prod4"
then
echo "prod loaded"
else
echo "bad host"
fi
edit: es behoben, es musste sein:
if [ "$host" = "$test1" -o "$host" = "$test2" ];
...
...
elif [ "$host" = "$prod1" -o "$host" = "$prod2" -o "$host" = "$prod3" -o "$host" = "$prod4" ];
Dank an alle!
'|' Rohrleitungen ist, '' || würde sein oder. Aber 'if' funktioniert basierend auf dem Rückgabewert eines Befehls, also möchten Sie die Bedingung in' [...] 'umbrechen. Beachten Sie, dass '[' selbst ein Befehl und kein Teil einer Syntax ist. – Siguza
@Siguza okay, versuchte es erneut mit dem Hinzufügen von [], jetzt funktioniert es, vielleicht habe ich vergessen, Leerzeichen nach und vor Klammern zu verwenden. Danke, ist || = oder nur für bash oder auch allgemein das oder?dachte, es sei | –
In den meisten Programmiersprachen ist '|' bitweise oder während '||' logisch oder ist. – Siguza