Konsolidieren Sie mehrere if-Anweisungen in der Ksh
Wie kann ich konsolidieren Sie die folgenden if-Anweisungen in einer einzigen Zeile?
if [ $# -eq 4 ]
then
if [ "$4" = "PREV" ]
then
print "yes"
fi
fi
if [ $# -eq 3 ]
then
if [ "$3" = "PREV" ]
then
print "yes"
fi
fi
Ich bin mit der ksh-Shell.
Warum hat dies eine Fehlermeldung zu geben?
if [ [ $# -eq 4 ] && [ "$4" = "PREV" ] ]
then
print "yes"
fi
Fehler:
0403-012 Ein test-Befehl parameter ist nicht gültig.
InformationsquelleAutor footy | 2012-01-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Können Sie auch versuchen Sie, Sie alle zusammen wie diese:
Tun, Sie wollen einfach nur, um zu überprüfen, ob das Letzte argument ist "PREV"? Wenn dem so ist, können Sie auch etwas wie das hier tun:
InformationsquelleAutor dogbane
Versuchen Sie dies :
InformationsquelleAutor Ali Ismayilov
'[' ist nicht eine Gruppierung token in sh. Sie tun kann:
oder
oder
Sie können auch Klammern verwenden, aber die Semantik ist etwas anders als die tests laufen in einer subshell.
Beachten Sie auch, dass "wenn cmd1; dann cmd2; fi" ist genau das gleiche wie "cmd1 && cmd2", so könnte man schreiben:
aber wenn Ihre Absicht ist es, zu überprüfen, dass das Letzte argument ist der string, PREV, sollten Sie überlegen:
InformationsquelleAutor William Pursell