In meinem Bash-Skript möchte ich null, einen oder zwei Parameter analysieren (das Skript kann sie erkennen) und dann die verbleibenden Parameter an einen im Skript aufgerufenen Befehl weiterleiten. Wie kann ich das machen?
bash
command-line
Łukasz Lew
quelle
quelle
$@
behandelt im Wesentlichen jedes Element des Arrays als Zeichenfolge in Anführungszeichen - sie werden ohne Erweiterungsmöglichkeit weitergegeben. Es stellt auch sicher, dass jedes als separates Wort gesehen wird. Diese Erklärung zusammen mit einem Testskriptbash verwendet den Befehl shift :
zB shifttest.sh:
shifttest.sh 1 2 3 erzeugt
quelle
$1
ohne sie als zu zitieren"$1"
, führt die Shell eine Wortaufteilung durch, sodass z. B.foo bar
alsfoo
undbar
separat weitergeleitet wird.Bash unterstützt Teilmengenparameter (siehe Teilmengen und Teilzeichenfolgen ), sodass Sie auswählen können, welche Parameter wie folgt verarbeitet / übergeben werden sollen.
öffne neue Datei und bearbeite sie: vim
r.sh
:starte es:
Das Ergebnis ist:
quelle