Server IP : 85.214.239.14 / Your IP : 18.116.63.107 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/doc/util-linux/examples/ |
Upload File : |
#!/bin/bash # A small example script for using the getopt(1) program. # This script will only work with bash(1). # A similar script using the tcsh(1) language can be found # as getopt-example.tcsh. # Example input and output (from the bash prompt): # # ./getopt-example.bash -a par1 'another arg' --c-long 'wow!*\?' -cmore -b " very long " # Option a # Option c, no argument # Option c, argument 'more' # Option b, argument ' very long ' # Remaining arguments: # --> 'par1' # --> 'another arg' # --> 'wow!*\?' # Note that we use "$@" to let each command-line parameter expand to a # separate word. The quotes around "$@" are essential! # We need TEMP as the 'eval set --' would nuke the return value of getopt. TEMP=$(getopt -o 'ab:c::' --long 'a-long,b-long:,c-long::' -n 'example.bash' -- "$@") if [ $? -ne 0 ]; then echo 'Terminating...' >&2 exit 1 fi # Note the quotes around "$TEMP": they are essential! eval set -- "$TEMP" unset TEMP while true; do case "$1" in '-a'|'--a-long') echo 'Option a' shift continue ;; '-b'|'--b-long') echo "Option b, argument '$2'" shift 2 continue ;; '-c'|'--c-long') # c has an optional argument. As we are in quoted mode, # an empty parameter will be generated if its optional # argument is not found. case "$2" in '') echo 'Option c, no argument' ;; *) echo "Option c, argument '$2'" ;; esac shift 2 continue ;; '--') shift break ;; *) echo 'Internal error!' >&2 exit 1 ;; esac done echo 'Remaining arguments:' for arg; do echo "--> '$arg'" done