⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extglob.tests

📁 android-w.song.android.widget
💻 TESTS
字号:
# test the ksh-like extended globbing features: [!@*?+](patlist)shopt -s extglobexpect(){	echo expect "$@"}case "/dev/udp/129.22.8.102/45" in/dev/@(tcp|udp)/*/*)	echo ok 1;;*)		echo bad 1;;esac# valid numberscase 12 in0|[1-9]*([0-9]))	echo ok 2;;*)			echo bad 2;;esaccase 12abc in0|[1-9]*([0-9]))	echo bad 3;;*)			echo ok 3;;esaccase 1 in0|[1-9]*([0-9]))	echo ok 4;;*)			echo bad 4;;esac# octal numberscase 07 in+([0-7]))		echo ok 5;;*)			echo bad 5;;esaccase 0377 in+([0-7]))		echo ok 6;;*)			echo bad 6;;esaccase 09 in+([0-7]))		echo bad 7;;*)			echo ok 7;;esac# stuff from korn's bookcase paragraph inpara@(chute|graph))	echo ok 8;;*)			echo bad 8;;esaccase paramour inpara@(chute|graph))	echo bad 9;;*)			echo ok 9;;esaccase para991 inpara?([345]|99)1)	echo ok 10;;*)			echo bad 10;;esaccase para381 inpara?([345]|99)1)	echo bad 11;;*)			echo ok 11;;esaccase paragraph inpara*([0-9]))		echo bad 12;;*)			echo ok 12;;esaccase para inpara*([0-9]))		echo ok 13;;*)			echo bad 13;;esaccase para13829383746592 inpara*([0-9]))		echo ok 14;;*)			echo bad 14;;esaccase paragraph inpara*([0-9]))		echo bad 15;;*)			echo ok 15;;esaccase para inpara+([0-9]))		echo bad 16;;*)			echo ok 16;;esaccase para987346523 inpara+([0-9]))		echo ok 17;;*)			echo bad 17;;esaccase paragraph inpara!(*.[0-9]))		echo ok 18;;*)			echo bad 18;;esaccase para.38 inpara!(*.[0-9]))		echo ok 19;;*)			echo bad 19;;esaccase para.graph inpara!(*.[0-9]))		echo ok 20;;*)			echo bad 20;;esaccase para39 inpara!(*.[0-9]))		echo ok 21;;*)			echo bad 21;;esac# tests derived from those in rosenblatt's korn shell bookcase "" in*(0|1|3|5|7|9))		echo ok 22;;*)			echo bad 22;esaccase 137577991 in*(0|1|3|5|7|9))		echo ok 23;;*)			echo bad 23;esaccase 2468 in*(0|1|3|5|7|9))		echo bad 24;;*)			echo ok 24;esaccase file.c in*.c?(c))		echo ok 25;;*)			echo bad 25;;esaccase file.C in*.c?(c))		echo bad 26;;*)			echo ok 26;;esaccase file.cc in*.c?(c))		echo ok 27;;*)			echo bad 27;;esaccase file.ccc in*.c?(c))		echo bad 28;;*)			echo ok 28;;esaccase parse.y in!(*.c|*.h|Makefile.in|config*|README))	echo ok 29;;*)			echo bad 29;;esaccase shell.c in!(*.c|*.h|Makefile.in|config*|README))	echo bad 30;;*)			echo ok 30;;esaccase Makefile in!(*.c|*.h|Makefile.in|config*|README))	echo ok 31;;*)			echo bad 31;;esaccase "VMS.FILE;1" in*\;[1-9]*([0-9]))	echo ok 32;;*)			echo bad 32;;esaccase "VMS.FILE;0" in*\;[1-9]*([0-9]))	echo bad 33;;*)			echo ok 33;;esaccase "VMS.FILE;" in*\;[1-9]*([0-9]))	echo bad 34;;*)			echo ok 34;;esaccase "VMS.FILE;139" in*\;[1-9]*([0-9]))	echo ok 35;;*)			echo bad 35;;esaccase "VMS.FILE;1N" in*\;[1-9]*([0-9]))	echo bad 36;;*)			echo ok 36;;esac# tests derived from the pd-ksh test suiteMYDIR=$PWD      # save where we are: ${TMPDIR:=/var/tmp}TESTDIR=$TMPDIR/eglob-test-$$mkdir $TESTDIRbuiltin cd $TESTDIR || { echo $0: cannot cd to $TESTDIR >&2 ; exit 1; }rm -rf *touch abcx abcz bbcexpect '!([*)*'echo !([*)*expect '+(a|b[)*'echo +(a|b[)*expect '[a*(]*z'echo [a*(]*)zrm -f abcx abcz bbctouch abcexpect '+()c'echo +()cexpect '+()x'echo +()xexpect abcecho +(*)cexpect '+(*)x'echo +(*)x# extended globbing should not be performed on the output of substitutionsx='@(*)'expect '@(*)'echo $xexpect 'no-file+(a|b)stuff'echo no-file+(a|b)stuffexpect 'no-file+(a*(c)|b)stuff'echo no-file+(a*(c)|b)stufftouch abd acdexpect 'abd acd'echo a+(b|c)dexpect 'acd'echo a!(@(b|B))dexpect 'abd'echo a[b*(foo|bar)]d# simple kleene star testsexpect nocase foo in *(a|b[)) echo yes;; *) echo no;; esacexpect yescase foo in *(a|b[)|f*) echo yes;; *) echo no;; esac# this doesn't work right yet; it is an incorrectly formed patternexpect yescase '*(a|b[)' in *(a|b[)) echo yes;; *) echo no;; esac# check extended globbing in pattern removal -- these don't work right yetx=abcdefexpect '1: bcdef'echo 1: ${x#+(a|abc)}expect '2: def'echo 2: ${x##+(a|abc)}expect '3: abcde'echo 3: ${x%+(def|f)}expect '4: abc'echo 4: ${x%%+(f|def)}# these work okexpect '5: ef'echo 5: ${x#*(a|b)cd}expect '6: ef'echo 6: "${x#*(a|b)cd}"expect '7: abcdef'echo 7: ${x#"*(a|b)cd"}# More tests derived from a bug report concerning extended glob patterns# following a *builtin cd $TESTDIR || { echo $0: cannot cd to $TESTDIR >&2 ; exit 1; }rm -rf *touch ab abcdef abef abcfefexpect 'ab abef'echo ab*(e|f)expect 'abcfef abef'echo ab?*(e|f)expect abcdefecho ab*d+(e|f)expect 'ab abcdef abcfef abef'echo ab**(e|f)expect 'abcdef abcfef abef'echo ab*+(e|f)case 'abcfefg' inab**(e|f))	echo ok 37;;*)		echo bad 37;;esaccase 'abcfefg' inab**(e|f)g)	echo ok 38;;*a)		echo bad 38;;esaccase ab inab*+(e|f))	echo bad 39;;*)		echo ok 39;;esaccase abef inab***ef)	echo ok 40;;*)		echo bad 40;;esaccase abef inab**)		echo ok 41;;*)		echo bad 41;;esac# bug in all versions up to and including bash-2.05bcase "123abc" in*?(a)bc)	echo ok 42;;*)		echo bad 42;;esac# clean up and do the next onebuiltin cd /rm -rf $TESTDIRmkdir $TESTDIRbuiltin cd $TESTDIRLC_COLLATE=C # have to set this; it affects the sorting touch a.b a,b a:b a-b a\;b a\ b a_becho a[^[:alnum:]]becho a[-.,:\;\ _]becho a@([^[:alnum:]])becho a@([-.,:; _])becho a@([.])becho a@([^.])becho a@([^x])becho a+([^[:alnum:]])becho a@(.|[^[:alnum:]])bbuiltin cd /rm -rf $TESTDIRx=abcdefrecho "${x#*(a|b)cd}"TEST='a , b'shopt -s globstarecho ${TEST//*([[:space:]]),*([[:space:]])/,}shopt -u globstar# this is for the benefit of pure coverage, so it writes the pcv file# in the right placebuiltin cd "$MYDIR"${THIS_SH} ./extglob1.subexit 0

⌨️ 快捷键说明

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