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

   Page Updates
Apache Bench load testing
Console::Blackjack
RetroPie Arcade
Factorio on systemd
Generate new Factorio map
   Recent Articles
Install xfce4 on Debian
Console Blackjack in Perl
Selenium::WebDriver::Error::UnknownError
Game of Life in C++ using the SDL2
PigPen (dots and boxes) in C++ using the SDL2
   Tags
active-record (2) android (1) apache (1) apt (1) arcade (1) awk (2) bash (2) bashrc (1) battleship (1) bdd (1) blackjack (12) book (1) books (1) build (1) c (2) c++ (2) cacti (1) capybara (1) ccna (1) cisco (1) clang (1) clang++ (1) console (5) cpp (2) crm (1) crystal (1) data (1) debian (7) diff (1) elixir (1) factorio (2) fedora (1) firewall (1) freebsd (1) g++ (1) game (4) games (1) gcc (1) gem (1) git (3) github (1) gmail (1) go-lang (3) google-chrome (1) haml (1) home (1) infix (1) irssi (1) kernel (3) lab (1) latin1 (1) life (1) linux (6) lottery (1) matrix (1) meta (1) microsoft (1) moarvm (1) model (1) module (1) mongodb (1) mp3s (1) mutt (1) nautical (1) nqp (1) object (1) oidentd (1) operator (1) orm (2) pair-programming (1) pairing (1) patch (1) perl (1) pigpen (1) postgresql (2) powerball (1) programming (1) psql (1) python (2) python3 (1) raku (16) raspberry-pi (1) raspberrypi (1) reactjs (2) readline (1) retropie (1) reversi (1) rhel (1) ruby (1) sdl2 (4) sed (1) selenium (1) selinux (1) snmpd (1) split (1) ssh (1) stack (1) systemd (1) template (1) test (1) testing (3) tictactoe (1) trace (1) typescript (2) ubuntu (2) utf8 (1) virus (1) war (1) xargs (1) xfce4 (1) xvfb (1) zef (1)
   Twitter

Copyright © 2005 - 2021

GregDonald.com · Contact

All Rights Reserved