mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-06 10:12:38 +02:00
commit bash-20090917 snapshot
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
BUILD_DIR=/usr/local/build/chet/bash/bash-current
|
||||
BUILD_DIR=/usr/local/build/bash/bash-current
|
||||
THIS_SH=$BUILD_DIR/bash
|
||||
PATH=$PATH:$BUILD_DIR
|
||||
|
||||
|
||||
@@ -150,3 +150,6 @@ getenv.o
|
||||
input_avail.o
|
||||
itos.o
|
||||
alias.o builtins builtins/history.o builtins/jobs.o builtins/kill.o builtins/let.o builtins/mapfile.o lib lib/glob lib/glob/glob.o lib/glob/smatch.o lib/glob/strmatch.o lib/readline lib/readline/bind.o lib/readline/callback.o lib/readline/compat.o lib/readline/complete.o lib/readline/display.o lib/sh lib/sh/casemod.o lib/sh/clktck.o lib/sh/clock.o lib/sh/eaccess.o lib/sh/fdprintf.o lib/sh/fmtullong.o lib/sh/fmtulong.o lib/sh/fmtumax.o lib/sh/fpurge.o lib/sh/getenv.o lib/sh/input_avail.o lib/sh/itos.o pcomplib.o print_cmd.o redir.o shell.o sig.o stringlib.o subst.o syntax.o test.o trap.o unwind_prot.o variables.o version.o xmalloc.o y.tab.o
|
||||
bar/foo foo
|
||||
bar/foo/ foo/
|
||||
bar/foo/e bar/foo/f foo/a foo/b
|
||||
|
||||
@@ -37,3 +37,5 @@ echo **
|
||||
|
||||
cd $dir
|
||||
rm -rf $GDIR
|
||||
|
||||
${THIS_SH} ./globstar1.sub
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
: ${TMPDIR:=/var/tmp}
|
||||
dir=$PWD
|
||||
|
||||
shopt -s globstar
|
||||
|
||||
export LANG=C LC_ALL=C LC_COLLATE=C
|
||||
|
||||
GDIR=$TMPDIR/globstar-$$
|
||||
|
||||
mkdir $GDIR || exit 1
|
||||
cd $GDIR || exit 1
|
||||
|
||||
mkdir lib builtins
|
||||
mkdir lib/glob lib/readline lib/sh
|
||||
|
||||
touch builtins/history.o builtins/jobs.o builtins/kill.o builtins/let.o builtins/mapfile.o
|
||||
touch lib/glob/glob.o lib/glob/smatch.o lib/glob/strmatch.o
|
||||
touch lib/readline/bind.o lib/readline/callback.o lib/readline/compat.o lib/readline/complete.o lib/readline/display.o
|
||||
|
||||
touch lib/sh/casemod.o lib/sh/clktck.o lib/sh/clock.o lib/sh/eaccess.o
|
||||
touch lib/sh/fdprintf.o lib/sh/fmtullong.o lib/sh/fmtulong.o lib/sh/fmtumax.o
|
||||
touch lib/sh/fpurge.o lib/sh/getenv.o lib/sh/input_avail.o lib/sh/itos.o
|
||||
|
||||
touch alias.o
|
||||
touch pcomplib.o print_cmd.o redir.o shell.o sig.o stringlib.o subst.o syntax.o
|
||||
touch test.o trap.o unwind_prot.o variables.o version.o xmalloc.o y.tab.o
|
||||
|
||||
ls lib/**
|
||||
|
||||
ls lib/**/*.o
|
||||
|
||||
echo **/*.o
|
||||
|
||||
ls **
|
||||
|
||||
echo **
|
||||
|
||||
cd $dir
|
||||
rm -rf $GDIR
|
||||
@@ -0,0 +1,21 @@
|
||||
shopt -s globstar
|
||||
wdir=$PWD
|
||||
|
||||
: ${TMPDIR:=/var/tmp}
|
||||
DIR=$TMPDIR/globstar-$$
|
||||
mkdir -p $DIR
|
||||
cd $DIR || {
|
||||
echo "$DIR: cannot cd" >&2
|
||||
exit 1
|
||||
}
|
||||
mkdir -p foo/{a,b} bar/{c,d,foo/{e,f}} baz/{g,h}
|
||||
|
||||
|
||||
echo **/foo*
|
||||
|
||||
echo **/foo*/
|
||||
|
||||
echo **/foo*/*
|
||||
|
||||
cd $wdir
|
||||
rm -rf $DIR
|
||||
@@ -0,0 +1,2 @@
|
||||
${THIS_SH} ./vredir.tests > /tmp/xx 2>&1
|
||||
diff /tmp/xx vredir.right && rm -f /tmp/xx
|
||||
@@ -0,0 +1,88 @@
|
||||
10
|
||||
foo 1
|
||||
foo 2
|
||||
foo 3
|
||||
bar is a function
|
||||
bar ()
|
||||
{
|
||||
exec {v}> $TMPFILE;
|
||||
echo $v
|
||||
}
|
||||
./vredir.tests: line 6: v: readonly variable
|
||||
./vredir.tests: line 6: v: cannot assign fd to variable
|
||||
42
|
||||
./vredir.tests: line 25: $v: Bad file descriptor
|
||||
./vredir.tests: line 26: $v: Bad file descriptor
|
||||
./vredir.tests: line 27: $v: Bad file descriptor
|
||||
bar is a function
|
||||
bar ()
|
||||
{
|
||||
exec {v}> $TMPFILE;
|
||||
echo $v
|
||||
}
|
||||
11
|
||||
line 1
|
||||
line 2
|
||||
line 3
|
||||
bar is a function
|
||||
bar ()
|
||||
{
|
||||
exec {v}<<EOF
|
||||
line 1
|
||||
line 2
|
||||
line 3
|
||||
EOF
|
||||
|
||||
echo $v
|
||||
}
|
||||
11
|
||||
foo 1
|
||||
foo 2
|
||||
foo 3
|
||||
11
|
||||
/bin/bash
|
||||
/bin/csh
|
||||
/bin/ksh
|
||||
/bin/sh
|
||||
/bin/tcsh
|
||||
/bin/zsh
|
||||
oclosev is a function
|
||||
oclosev ()
|
||||
{
|
||||
exec {v}>&-
|
||||
}
|
||||
iclosev is a function
|
||||
iclosev ()
|
||||
{
|
||||
exec {v}>&-
|
||||
}
|
||||
/bin/bash
|
||||
/bin/csh
|
||||
/bin/ksh
|
||||
/bin/sh
|
||||
/bin/tcsh
|
||||
/bin/zsh
|
||||
./vredir3.sub: line 4: v: ambiguous redirect
|
||||
after
|
||||
11 12
|
||||
a
|
||||
a
|
||||
swizzle is a function
|
||||
swizzle ()
|
||||
{
|
||||
fd0=0;
|
||||
fd1=1;
|
||||
exec {stdin}<&$fd0;
|
||||
exec {stdout}>&$fd1
|
||||
}
|
||||
13 11
|
||||
a
|
||||
a
|
||||
swizzle is a function
|
||||
swizzle ()
|
||||
{
|
||||
exec {fd0}<&0;
|
||||
exec {fd1}>&1;
|
||||
exec {stdin}<&$fd0-;
|
||||
exec {stdout}>&$fd1-
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
: ${TMPDIR:=/var/tmp}
|
||||
TMPFILE=$TMPDIR/foo
|
||||
|
||||
bar()
|
||||
{
|
||||
exec {v}>$TMPFILE
|
||||
echo $v
|
||||
}
|
||||
|
||||
bar
|
||||
|
||||
echo foo 1 >&$v
|
||||
echo foo 2 >&$v
|
||||
echo foo 3 >&$v
|
||||
|
||||
cat $TMPFILE
|
||||
rm -f $TMPFILE
|
||||
|
||||
type bar
|
||||
exec {v}>&-
|
||||
|
||||
readonly v=42
|
||||
bar
|
||||
|
||||
echo foo 1 >&$v
|
||||
echo foo 2 >&$v
|
||||
echo foo 3 >&$v
|
||||
|
||||
cat $TMPFILE
|
||||
rm -f $TMPFILE
|
||||
|
||||
type bar
|
||||
|
||||
${THIS_SH} ./vredir1.sub
|
||||
|
||||
${THIS_SH} ./vredir2.sub
|
||||
|
||||
${THIS_SH} ./vredir3.sub
|
||||
|
||||
${THIS_SH} ./vredir4.sub
|
||||
|
||||
${THIS_SH} ./vredir5.sub
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,17 @@
|
||||
bar()
|
||||
{
|
||||
exec {v}<<EOF
|
||||
line 1
|
||||
line 2
|
||||
line 3
|
||||
EOF
|
||||
echo $v
|
||||
}
|
||||
|
||||
bar
|
||||
|
||||
cat <&$v
|
||||
|
||||
type bar
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,52 @@
|
||||
: ${TMPDIR:=/var/tmp}
|
||||
SHELLSFILE=$TMPDIR/shells-$$
|
||||
|
||||
cat > $TMPDIR/shells-$$ <<EOF
|
||||
/bin/bash
|
||||
/bin/csh
|
||||
/bin/ksh
|
||||
/bin/sh
|
||||
/bin/tcsh
|
||||
/bin/zsh
|
||||
EOF
|
||||
|
||||
oclosev()
|
||||
{
|
||||
exec {v}>&-
|
||||
}
|
||||
|
||||
iclosev()
|
||||
{
|
||||
exec {v}<&-
|
||||
}
|
||||
|
||||
exec {v}>&1
|
||||
echo $v
|
||||
|
||||
echo foo 1 >&$v
|
||||
echo foo 2 >&$v
|
||||
echo foo 3 >&$v
|
||||
|
||||
oclosev
|
||||
|
||||
exec {v}<$SHELLSFILE
|
||||
echo $v
|
||||
|
||||
while read line <&$v
|
||||
do
|
||||
echo $line
|
||||
done
|
||||
|
||||
iclosev
|
||||
|
||||
type oclosev
|
||||
type iclosev
|
||||
|
||||
while read -r -u ${fd}
|
||||
do
|
||||
echo $REPLY
|
||||
done {fd}<$SHELLSFILE
|
||||
|
||||
rm -f $SHELLSFILE
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,52 @@
|
||||
: ${TMPDIR:=/var/tmp}
|
||||
SHELLSFILE=$TMPDIR/shells-$$
|
||||
|
||||
cat > $TMPDIR/shells-$$ <<EOF
|
||||
/bin/bash
|
||||
/bin/csh
|
||||
/bin/ksh
|
||||
/bin/sh
|
||||
/bin/tcsh
|
||||
/bin/zsh
|
||||
EOF
|
||||
|
||||
oclosev()
|
||||
{
|
||||
exec {v}>&-
|
||||
}
|
||||
|
||||
iclosev()
|
||||
{
|
||||
exec {v}<&-
|
||||
}
|
||||
|
||||
exec {v}>&1
|
||||
echo $v
|
||||
|
||||
echo foo 1 >&$v
|
||||
echo foo 2 >&$v
|
||||
echo foo 3 >&$v
|
||||
|
||||
oclosev
|
||||
|
||||
exec {v}<$SHELLSFILE
|
||||
echo $v
|
||||
|
||||
while read line <&$v
|
||||
do
|
||||
echo $line
|
||||
done
|
||||
|
||||
iclosev
|
||||
|
||||
type oclosev
|
||||
type iclosev
|
||||
|
||||
while read -r -u ${fd}
|
||||
do
|
||||
echo $REPLY
|
||||
done {fd}<$SHELLSFILE
|
||||
|
||||
rm -f $SHELLSFILE
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,8 @@
|
||||
# Right now, the {varname} mechanism does not honor set -u for compatibility
|
||||
unset v
|
||||
set -u
|
||||
exec {v}>&-
|
||||
|
||||
echo after
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,22 @@
|
||||
swizzle()
|
||||
{
|
||||
fd0=0
|
||||
fd1=1
|
||||
|
||||
exec {stdin}<&$fd0
|
||||
exec {stdout}>&$fd1
|
||||
}
|
||||
|
||||
swizzle
|
||||
echo $stdin $stdout
|
||||
|
||||
read line <&$stdin <<EOF
|
||||
a
|
||||
EOF
|
||||
|
||||
echo $line
|
||||
echo $line >&$stdout
|
||||
|
||||
type swizzle
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,23 @@
|
||||
swizzle()
|
||||
{
|
||||
exec {fd0}<&0
|
||||
exec {fd1}>&1
|
||||
|
||||
exec {stdin}<&$fd0-
|
||||
exec {stdout}>&$fd1-
|
||||
}
|
||||
|
||||
swizzle
|
||||
|
||||
echo $stdin $stdout
|
||||
|
||||
read line <&$stdin <<EOF
|
||||
a
|
||||
EOF
|
||||
|
||||
echo $line
|
||||
echo $line >&$stdout
|
||||
|
||||
type swizzle
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user