Wenn ein Kommando, in unserem Fall das eigene Script, aufgerufen wird, so scannt die shell die Eingabezeile und interpretiert diese. Wurden dem Kommando einzelne Parameter mitgegeben, so speichert die bash den expandierten Inhalte der Parameter in speziellen Variablen, den Positionsparametern ab. Diese können dann innerhalb des Scripte gelesen werden. Der Positionsparameter $0 enthält den Namen mit dem das Script gestartet wurde und die Parameter $1 $2 $3 ... enthalten die beim Start des Scriptes mitgegebenen Parameter. Es gibt noch weitere Positionsparameter, die hier erläutert werden. Um die Parameter zu nutzen, werden wir sie in echo-Anweisungen einbauen. Es wird sehr schnell klar, das das Quoting durch Anführungszeichen nicht für das Sonderzeichen $ gilt. Damit kann die shell die Positionsparameter im gequoteten echo-Parameter erkennen und expandieren. Um die Wirkungsweise der verschiedenen Arten des Quotings zu zeigen, habe ich zwei unterschiedlich gequotete Zeilen mit eingefügt. Das Script sieht nun so aus:
#!/bin/bash echo "Das Script $0 wurde aufgerufen" echo "Es wurden $# Parameter gelesen" echo "Es handelt sich um die Parameter $*" echo 'Hier wird nichts expandiert $0 $1 $2' echo "Hier nur ein Teil \$0 $1 \$2 $*" echo "Hello $1" |
Nun kann das Script mit keinem, einem oder mehreren Parametern aufgerufen werden. Die Ausgabe sieht dann z.B. so aus:
bash-2.05b$ ./test frank thoms |