Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bash, argument list segment

Tags:

arrays

bash

If you have a list in python, and you want the elements from 2 to n can do something nice like

list[2:] 

I'd like to something similar with argv in Bash. I want to pass all the elements from $2 to argc to a command. I currently have

command $2 $3 $4 $5 $6 $7 $8 $9 

but this is less than elegant. Would would be the "proper" way?

like image 461
Mike Avatar asked Mar 05 '10 23:03

Mike


2 Answers

you can do "slicing" as well, $@ gets all the arguments in bash.

echo "${@:2}" 

gets 2nd argument onwards

eg

$ cat shell.sh #!/bin/bash echo "${@:2}"  $ ./shell.sh 1 2 3 4 2 3 4 
like image 165
ghostdog74 Avatar answered Oct 15 '22 05:10

ghostdog74


Store $1 somewhere, then shift and use $@?

like image 21
Ismail Badawi Avatar answered Oct 15 '22 05:10

Ismail Badawi