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