my-fish-script a b c d
Say you want to get the all arguments from the second argument onwards, so b c d
.
In bash you can use shift
to dump the first argument and access the remaining ones with "$@"
.
How would you solve the problem using the fish shell?
In fish, your arguments are contained in the $argv
list. Use list slicing to access a range of elements, e.g. $argv[2..-1]
returns all arguments from the second to the last.
For example
function loop --description "loop <count> <command>"
for i in (seq 1 $argv[1])
eval $argv[2..-1]
end
end
Usage
$ loop 3 echo hello world
hello world
hello world
hello world