2.7 KiB
- assignment-backtick
- assignment-doublequoted-doublequotes
- assignment-double-quote
- assignment-echo
- assignment-empty
- assignment
- assignment-singlequote
- assignment-variable-word
- assignment-word-variable
- Assignments reset exit status
- Assigning exit status works
- Assignments use command substitutions for exit status
- Assignments update exit status on the fly
;;; Gash – Guile As SHell ;;; Copyright © 2016, 2017, 2018 R.E.W. van Beusekom <rutger.van.beusekom@gmail.com> ;;; Copyright © 2018, 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com> ;;; ;;; This file is part of Gash. ;;; ;;; Gash is free software: you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation, either version 3 of the License, or ;;; (at your option) any later version. ;;; ;;; Gash is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with Gash. If not, see <http://www.gnu.org/licenses/>.
assignment-backtick
obj=ar.o
objs="$objs `basename $obj`"
echo "objs:>$objs<"
:STDOUT:
objs:> ar.o<
assignment-doublequoted-doublequotes
aliaspath=alias
localedir=locale
defines="-DALIASPATH=\"${aliaspath}\" -DLOCALEDIR=\"${localedir}\""
echo cc $defines
:STDOUT:
cc -DALIASPATH="alias" -DLOCALEDIR="locale"
assignment-double-quote
srcdir="."
assignment-echo
SHELL=/bin/bash
echo $SHELL
:STDOUT:
/bin/bash
assignment-empty
a=
echo a:$a
:STDOUT:
a:
assignment
SHELL=/bin/bash
assignment-singlequote
srcdir='.'
assignment-variable-word
SHELL=gash
bin=${SHELL}/bin
echo $bin
:STDOUT:
gash/bin
assignment-word-variable
SHELL=gash
PATH=bin:${SHELL}
echo $PATH
:STDOUT:
bin:gash
Assignments reset exit status
set +e
false
x=foobar
Assigning exit status works
set +e
false
x=$?
echo $x
:STDOUT:
1
Assignments use command substitutions for exit status
set +e
x=$(false)
echo $?
x=$(true)
echo $?
:STDOUT:
1 0
Assignments update exit status on the fly
set +e
false
x=$? y=$(true) z=$?
echo $x $z
:STDOUT:
1 0