How to get the nth positional argument in bash?
BashArgumentsCommand Line-ArgumentsBash Problem Overview
How to get the n
th positional argument in Bash, where n
is variable?
Bash Solutions
Solution 1 - Bash
Use Bash's indirection feature:
#!/bin/bash
n=3
echo ${!n}
Running that file:
$ ./ind apple banana cantaloupe dates
Produces:
cantaloupe
Edit:
You can also do array slicing:
echo ${@:$n:1}
but not array subscripts:
echo ${@[n]} # WON'T WORK
Solution 2 - Bash
If N
is saved in a variable, use
eval echo \${$N}
if it's a constant use
echo ${12}
since
echo $12
does not mean the same!
Solution 3 - Bash
Read
Handling positional parameters
and
$0: the first positional parameter
$1 ... $9: the argument list elements from 1 to 9