How to get the n
th positional argument in bash?
Thanks.
Edit: I forgot to say but I meant that n
is a variable.
How to get the n
th positional argument in bash?
Thanks.
Edit: I forgot to say but I meant that n
is a variable.
As you can see in the Bash by Example, you just need to use the automatic variables $1, $2, and so on.
$# is used to get the number of arguments.
Read
Handling positional parameters
and
$0: the first positional parameter
$1 ... $9: the argument list elements from 1 to 9
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!
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