parse.bash

来自「gsac程序包」· BASH 代码 · 共 48 行

BASH
48
字号
#!/bin/bash# A small example program for using the new getopt(1) program.# This program will only work with bash(1)# An similar program using the tcsh(1) script language can be found# as parse.tcsh# Example input and output (from the bash prompt):# ./parse.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 [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi# Note the quotes around `$TEMP': they are essential!eval set -- "$TEMP"while true ; do	case "$1" in		-a|--a-long) echo "Option a" ; shift ;;		-b|--b-long) echo "Option b, argument \`$2'" ; shift 2 ;;		-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"; shift 2 ;;				*)  echo "Option c, argument \`$2'" ; shift 2 ;;			esac ;;		--) shift ; break ;;		*) echo "Internal error!" ; exit 1 ;;	esacdoneecho "Remaining arguments:"for arg do echo '--> '"\`$arg'" ; done

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?