Что же касается ./script.sh arg1 [arg2 arg3 ...]
, аргументов командной строки arg1
, arg2
... может быть приобретено $1
, $2
... Но число аргументов НЕ фиксировано.
В сценарии оболочки я хочу передать аргументы, начиная с arg2
программы,
#/bin/bash
...
/path/to/a/program [I want to pass arg2 arg3 ... to the program]
...
Как я мог это сделать, поскольку может быть один или несколько аргументов?
bash
shell-script
shell
arguments
подветренный
источник
источник
$@
?$@
сообщают оболочке заключать в кавычки каждый параметр (что приятно делать, если параметры содержат интересные символы, такие как круглые скобки или звездочки). Если вас это не волнует, просто$*
работает ...Вы можете нарезать позиционные параметры, используя расширение параметров. Синтаксис:
Если
length
опущено, оно принимается до последнего значения.Поскольку вы должны были передать от второго до последнего аргумента, вам нужно:
Пример:
источник