linux - How do I control the user defined commands when executing a shell script in bash? -
i creating shell script has own commands (or options). in simpler terms, command line executing script (in terminal): ./myscript.sh -o:1,2,3,4 or ./myscript.sh -e:2,3,4. here code (for option part) looks far:
myscript.sh
for case "$i" in "-o:"*|"--only:"*) # check if 1 not included (if exit) ;; "-e:"*|"--except:"*) # check if 1 excluded (if exit) ;; *) echo -e "invalid option\ntry './audit.sh --help' help" exit ;; esac done explanation:
the purpose of code sum values user passes through ./myscript.sh -o:1,2,3,4 or subtract values ./myscript.sh -e:2,3,4. o "only" option adds numbers passed script option. e "exclude" option excludes values user defines , subtracts 100.
i have restriction number 1 must there (whether adding or subtracting). can't exclude number 1. here examples of illegal user input commands (./myscript.sh -e:1,2,3,4) , (./myscript.sh -o:2,3,4).
how check if number 1 included in only option , number 1 not excluded exclude option? thanks.
edit: method want approach using awk. suggestions?
- get value check
- add commas front , end
- check of
,1,substring
implementation:
i="--only:3,4,5" value=${i#*:} # strip prefix colon if [[ ,$value, == *,1,* ]] # check if ,1, substring echo "you have 1 in list." else echo "you're missing 1" exit 1 fi to invert check checking exclusion, can use !=.
Comments
Post a Comment