Wenn Sie das Vorhandensein und den Ort eines bestimmten Arguments testen möchten, müssen Sie lediglich die Befehlszeile analysieren und jedes Argument auf Übereinstimmung mit Ihrem "erwarteten" Wert testen. Sie müssen also jedes Argument auf den Wert testen -noenter
und dann eine Zeile mit Position und Name der Variablen ausgeben -noenter
:
for i in `seq 1 $#`; do ref=`eval "echo \\$$i"` if [ $ref == '-noenter' ]; then echo "arg $i is $ref"; break; fi done
Nun wird dasselbe, nur die Position des Arguments -noenter
in $mitsos
und die Position des Arguments davor gespeichert $mary
:
for i in `seq 1 $#`; do ref=`eval "echo \\${$i}"` if [ $ref == '-noenter' ]; then mitsos=$i eva=$(($i-1)) mary=`eval "echo \\${$eva}"` break fi done
und hat jetzt $mitsos
die Position von -noenter
oder keinen Wert und $mary
den Wert des vorangehenden Arguments -noenter
. Wenn zu diesem Zeitpunkt $mary
der Wert vorhanden ist, von dem /dir
Sie wissen, dass das nächste Argument lautet -noenter
, können Sie mit der Implementierung fortfahren. find
Andernfalls verwenden Sie die Systemversion oder geben eine Fehlermeldung aus. Wenn Sie sich nicht für die Position von -noenter
Ihnen interessieren, können Sie die Zeile weglassen mitsos=$i
.