mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-06 20:00:49 +02:00
commit bash-20170407 snapshot
This commit is contained in:
@@ -25,3 +25,14 @@ ok 8
|
||||
ok 9
|
||||
mysterious 1
|
||||
mysterious 2
|
||||
argv[1] = <\a\b\c\^A\d\e\f>
|
||||
argv[1] = <\a\b\c\^A\d\e\f>
|
||||
argv[1] = <abc^Adef>
|
||||
ok 1
|
||||
ok 2
|
||||
ok 3
|
||||
ok 4
|
||||
ok 5
|
||||
ok 6
|
||||
ok 7
|
||||
ok 8
|
||||
|
||||
@@ -51,3 +51,4 @@ case " " in ( [" "] ) echo ok;; ( * ) echo no;; esac
|
||||
|
||||
# tests of quote removal and pattern matching
|
||||
${THIS_SH} ./case1.sub
|
||||
${THIS_SH} ./case2.sub
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
x=$'\\a\\b\\c\\\001\\d\\e\\f'
|
||||
y='\a\b\c\\d\e\f'
|
||||
z=$'abc\001def'
|
||||
|
||||
recho "$x"
|
||||
recho "$y"
|
||||
recho "$z"
|
||||
|
||||
case $'abc\001def' in
|
||||
$x) echo ok 1 ;;
|
||||
*) echo oops 1;;
|
||||
esac
|
||||
|
||||
case $z in
|
||||
$x) echo ok 2 ;;
|
||||
*) echo oops 2;;
|
||||
esac
|
||||
|
||||
case $'abc\001def' in
|
||||
$y) echo ok 3 ;;
|
||||
*) echo oops 3;;
|
||||
esac
|
||||
|
||||
case $z in
|
||||
$y) echo ok 4 ;;
|
||||
*) echo oops 4;;
|
||||
esac
|
||||
|
||||
# no backslash before \001
|
||||
x=$'\\a\\b\\c\001\\d\\e\\f'
|
||||
y='\a\b\c\d\e\f'
|
||||
|
||||
case $'abc\001def' in
|
||||
$x) echo ok 5 ;;
|
||||
*) echo oops 5;;
|
||||
esac
|
||||
|
||||
case $z in
|
||||
$x) echo ok 6 ;;
|
||||
*) echo oops 6;;
|
||||
esac
|
||||
|
||||
case $'abc\001def' in
|
||||
$y) echo ok 7 ;;
|
||||
*) echo oops 7;;
|
||||
esac
|
||||
|
||||
case $z in
|
||||
$y) echo ok 8 ;;
|
||||
*) echo oops 8;;
|
||||
esac
|
||||
|
||||
@@ -210,11 +210,13 @@ argv[1] = <correct>
|
||||
argv[2] = <a>
|
||||
argv[1] = <correct>
|
||||
argv[2] = <a>
|
||||
./exp7.sub: line 5: INFORM: dequote_string: string with bare CTLESC
|
||||
argv[1] = <^A>
|
||||
argv[1] = <3>
|
||||
argv[2] = <^C>
|
||||
argv[3] = <^C>
|
||||
argv[4] = <^C>
|
||||
./exp7.sub: line 10: INFORM: dequote_string: string with bare CTLESC
|
||||
argv[1] = <^A>
|
||||
argv[1] = <x^Ay^?z>
|
||||
argv[1] = <x^Ay^?z>
|
||||
@@ -345,3 +347,44 @@ jkl
|
||||
< A >< B >< a >< b >
|
||||
< A >< B >< A >< B >
|
||||
< A >< B ><' A '><' B '>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1 2>
|
||||
argv[1] = <a b>
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[1] = <a b>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <12>
|
||||
argv[1] = <12>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = < >
|
||||
argv[1] = < >
|
||||
argv[1] = < >
|
||||
argv[1] = < >
|
||||
argv[1] = < >
|
||||
argv[1] = <12>
|
||||
argv[1] = <12>
|
||||
argv[1] = <12>
|
||||
argv[1] = <12>
|
||||
ok 1
|
||||
ok 2
|
||||
ok 3
|
||||
ok 4
|
||||
ok 5
|
||||
ok 6
|
||||
ok 7
|
||||
ok 8
|
||||
ok 9
|
||||
|
||||
@@ -406,3 +406,4 @@ ${THIS_SH} ./exp7.sub
|
||||
${THIS_SH} ./exp8.sub
|
||||
${THIS_SH} ./exp9.sub
|
||||
${THIS_SH} ./exp10.sub
|
||||
${THIS_SH} ./exp11.sub
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
set -- '1 2'
|
||||
|
||||
unset var
|
||||
recho ${var-${*:1}}
|
||||
|
||||
unset var
|
||||
recho ${var=$*}
|
||||
|
||||
unset var
|
||||
recho ${var=${*:1}}
|
||||
recho "$var"
|
||||
|
||||
# posix interp 221
|
||||
unset var
|
||||
recho ${var:-a\ b}
|
||||
|
||||
recho ${var:=a\ b}
|
||||
recho "$var"
|
||||
|
||||
set -- 1 2
|
||||
IFS=
|
||||
|
||||
unset a b c
|
||||
recho $*
|
||||
recho ${a-$*}
|
||||
recho ${b-${*/}}
|
||||
recho ${c=${*/}}
|
||||
recho "$c"
|
||||
recho ${b-${*,,}}
|
||||
recho ${d-${*,,}}
|
||||
|
||||
unset -v a b c
|
||||
IFS=$' \t\n'
|
||||
|
||||
set -- ' '
|
||||
A=(' ')
|
||||
|
||||
IFS=
|
||||
unset var
|
||||
var=${*@E}
|
||||
recho "$var"
|
||||
|
||||
unset var
|
||||
var=${A[*]@E}
|
||||
recho "$var"
|
||||
|
||||
unset var
|
||||
var=${@@E}
|
||||
recho "$var"
|
||||
|
||||
unset var
|
||||
var=${A[@]@E}
|
||||
recho "$var"
|
||||
|
||||
unset novar
|
||||
recho ${novar-${A[*]@E}}
|
||||
|
||||
unset -v var novar
|
||||
IFS=$' \t\n'
|
||||
|
||||
set -- 1 2
|
||||
A=( 1 2 )
|
||||
IFS=
|
||||
|
||||
a=$*
|
||||
recho "$a"
|
||||
b=${*@E}
|
||||
recho "$b"
|
||||
|
||||
unset a b
|
||||
a=${A[*]}
|
||||
recho "$a"
|
||||
b=${A[*]@E}
|
||||
recho "$b"
|
||||
|
||||
set -- $'\t'
|
||||
A=$1
|
||||
|
||||
IFS=$1
|
||||
[[ ${A[@]} ]] && echo ok 1
|
||||
[[ ${A[*]} ]] && echo ok 2
|
||||
[[ ${A[0]} ]] && echo ok 3
|
||||
|
||||
IFS=$' \t\n'
|
||||
[[ ${A[@]} ]] && echo ok 4
|
||||
[[ ${A[*]} ]] && echo ok 5
|
||||
[[ ${A[0]} ]] && echo ok 6
|
||||
|
||||
IFS=
|
||||
[[ ${A[@]} ]] && echo ok 7
|
||||
[[ ${A[*]} ]] && echo ok 8
|
||||
[[ ${A[0]} ]] && echo ok 9
|
||||
+71
-2
@@ -37,5 +37,74 @@ argv[1] = <'bar>
|
||||
argv[1] = <foo 'bar baz>
|
||||
argv[1] = <}z>
|
||||
argv[1] = <''z}>
|
||||
./posixexp.tests: line 77: unexpected EOF while looking for matching `}'
|
||||
./posixexp.tests: line 78: syntax error: unexpected end of file
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1 2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1 2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1 2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1 2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1 2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <12>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1 2>
|
||||
argv[1] = <1>
|
||||
argv[2] = <2>
|
||||
argv[1] = <1 2>
|
||||
argv[1] = <12>
|
||||
argv[1] = <12>
|
||||
argv[1] = <12>
|
||||
argv[1] = <12>
|
||||
normal IFS
|
||||
argv[1] = <abc>
|
||||
argv[2] = <def>
|
||||
argv[3] = <ghi>
|
||||
argv[4] = <jkl>
|
||||
argv[1] = <abc>
|
||||
argv[2] = <def>
|
||||
argv[3] = <ghi>
|
||||
argv[4] = <jkl>
|
||||
argv[1] = <abc>
|
||||
argv[2] = <def>
|
||||
argv[3] = <ghi>
|
||||
argv[4] = <jkl>
|
||||
null IFS
|
||||
argv[1] = < abc>
|
||||
argv[2] = <def ghi>
|
||||
argv[3] = <jkl >
|
||||
argv[1] = < abc def ghi jkl >
|
||||
argv[1] = < abc>
|
||||
argv[2] = <def ghi>
|
||||
argv[3] = <jkl >
|
||||
non-standard IFS
|
||||
argv[1] = < abc>
|
||||
argv[2] = <def ghi>
|
||||
argv[3] = <jkl >
|
||||
argv[1] = < abc def ghi jkl >
|
||||
argv[1] = < abc def ghi jkl >
|
||||
unset IFS
|
||||
argv[1] = < abc>
|
||||
argv[2] = <def ghi>
|
||||
argv[3] = <jkl >
|
||||
argv[1] = < abc def ghi jkl >
|
||||
argv[1] = < abc def ghi jkl >
|
||||
./posixexp.tests: line 80: unexpected EOF while looking for matching `}'
|
||||
./posixexp.tests: line 81: syntax error: unexpected end of file
|
||||
|
||||
@@ -72,6 +72,9 @@ ${THIS_SH} ./posixexp1.sub || echo "bash posixexp1.sub: test $? failed"
|
||||
THIS_SH=$TMPDIR/sh ${THIS_SH} ./posixexp2.sub || echo "sh posixexp2.sub: test $? failed"
|
||||
rm -f $TMPDIR/sh
|
||||
|
||||
${THIS_SH} ./posixexp3.sub
|
||||
${THIS_SH} ./posixexp4.sub
|
||||
|
||||
# this will be an error
|
||||
foo=bar
|
||||
echo "${foo:-"a}"
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
set -- 1 2
|
||||
|
||||
unset var
|
||||
recho ${var-$@}
|
||||
recho ${var-"$@"}
|
||||
recho ${var-$*}
|
||||
recho ${var-"$*"}
|
||||
|
||||
unset -v a b c d
|
||||
recho ${a=$@}
|
||||
recho "$a"
|
||||
recho ${b="$@"}
|
||||
recho "$b"
|
||||
recho ${c=$*}
|
||||
recho "$c"
|
||||
recho ${d="$*"}
|
||||
recho "$d"
|
||||
|
||||
IFS=
|
||||
unset var
|
||||
recho ${var-$@}
|
||||
recho ${var-"$@"}
|
||||
recho ${var-$*}
|
||||
recho ${var-"$*"}
|
||||
|
||||
unset -v a b c d
|
||||
# Posix interp 221
|
||||
recho ${a=$@}
|
||||
recho "$a"
|
||||
recho ${b="$@"}
|
||||
recho "$b"
|
||||
recho ${c=$*}
|
||||
recho "$c"
|
||||
recho ${d="$*"}
|
||||
recho "$d"
|
||||
@@ -0,0 +1,31 @@
|
||||
set -- ' abc' 'def ghi' 'jkl '
|
||||
|
||||
echo normal IFS
|
||||
recho $@
|
||||
: ${var=$@}
|
||||
recho $var
|
||||
unset -v var
|
||||
recho ${var-$@}
|
||||
|
||||
echo null IFS
|
||||
IFS=
|
||||
recho $@
|
||||
: ${var=$@}
|
||||
recho $var
|
||||
unset -v var
|
||||
recho ${var-$@}
|
||||
|
||||
echo non-standard IFS
|
||||
IFS=:
|
||||
recho $@
|
||||
: ${var=$@}
|
||||
recho $var
|
||||
unset -v var
|
||||
recho ${var-$@} # this is inconsistent
|
||||
|
||||
echo unset IFS
|
||||
recho $@
|
||||
: ${var=$@}
|
||||
recho $var
|
||||
unset -v var
|
||||
recho ${var-$@}
|
||||
Reference in New Issue
Block a user