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