Как получить N-й позиционный аргумент в bash?


Как получить n - й позиционный аргумент в bash?

спасибо.

Edit: Я забыл сказать, но я имел в виду, что n - Это переменная.

5 65

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 

не означает то же самое!

  ... $n

содержит имя скрипта.

Как вы можете видеть в разделе Bash на примере, вам просто нужно использовать автоматические переменные $1, $2, и так далее.

$# используется для получения количества аргументов.

читать

обработка позиционных параметров

и

расширения параметр

$0: первый позиционный параметр

$1 ... $9: элементы списка аргументов от 1 до 9