Ответы:
Вы можете использовать тот же формат, что и для любого другого массива. Чтобы извлечь 2-й и 3-й элементы $@
, вы должны сделать:
echo "${@:1:2}"
- -
| |----> slice length
|------> slice starting index
"${@:1:2}"
фактически дает мне 1-й и 2-й аргументы командной строки . Между тем, "${@:1}"
дает мне полные аргументы командной строки и "${@:0}"
дает имя сценария, за которым следуют полные аргументы командной строки .
$@
массива являются 1-м и 2-м аргументами. "${@:1}"
напечатает весь массив, начиная со 2-го элемента (1-й аргумент), и ${@:0}
весь массив, начиная с 1-го элемента, который является именем скрипта. Чего ты ожидал?
"$@"
. Вашеargv
назначение будет нарушено, если какие-либо аргументы будут содержать пробелы.