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