How to filter out Bash arguments
Ever want to know how to drop an argument (and value), --dir in this case, from a Bash script?
Someone from my local LUG asked how to do it and this is what I came up with:
Fun ;)
#!/usr/bin/env bash
args=("$@")
myargs=()
nextarg=-1
for ((i=0; i<$#; i++)) {
if [ $nextarg == $i ]; then continue; fi
case ${args[$i]} in
--dir) nextarg=$((i+1)) ;;
*) myargs+="${args[$i]} "
esac
}
echo $myargs
./remove_dir.bash --dir foo --bar baz
--bar baz