Как получить n-й позиционный аргумент в bash?
-
19-09-2019 - |
Вопрос
Как получить n
й позиционный аргумент в Bash, где n
является ли переменным?
Решение
Используйте функцию косвенного обращения Bash:
#!/bin/bash
n=3
echo ${!n}
Запускаю этот файл:
$ ./ind apple banana cantaloupe dates
Производит:
cantaloupe
Редактировать:
Вы также можете выполнить нарезку массива:
echo ${@:$n:1}
но не индексы массива:
echo ${@[n]} # WON'T WORK
Другие советы
Если N
сохраняется в переменной, используйте
eval echo \${$N}
если это постоянное использование
echo ${12}
с тех пор как
echo $12
это не значит то же самое!
$1 $2 ... $n
$0
содержит название скрипта.
Как вы можете видеть в Bash на примере, вам просто нужно использовать автоматические переменные $ 1, $ 2 и так далее.
$# используется для получения количества аргументов.
Читать
Обработка позиционных параметров
и
$0:первый позиционный параметр
$1 ...$9:в аргументе перечислены элементы от 1 до 9
Не связан с StackOverflow