Jeśli chodzi o ./script.sh arg1 [arg2 arg3 ...]
argumenty wiersza poleceń arg1
, arg2
... można dostać przez $1
, $2
... Ale liczba argumentów jest nie ustalone.
W skrypcie powłoki chcę przekazać argumenty zaczynające się od arg2
do programu,
#/bin/bash
...
/path/to/a/program [I want to pass arg2 arg3 ... to the program]
...
Jak mogę to zrobić, skoro może istnieć jeden lub więcej argumentów?
bash
shell-script
shell
arguments
Zawietrzny
źródło
źródło
$@
?$@
nakazuje powłoce podwójne zacytowanie każdego parametru (coś fajnego do zrobienia, jeśli parametry zawierają ciekawe znaki, takie jak nawiasy lub gwiazdki). Jeśli cię to nie obchodzi, zwykły$*
działa ...Można pokroić parametry pozycyjne za pomocą rozszerzenia parametrów. Składnia jest następująca:
Jeśli
length
zostanie pominięty, jest brany do ostatniej wartości.Aby przejść z argumentów od drugiego do ostatniego, potrzebujesz:
Przykład:
źródło