xref: /freebsd/bin/sh/tests/builtins/var-assign.0 (revision cddbc3b40812213ff00041f79174cac0be360a2a)
1# $FreeBSD$
2IFS=,
3
4SPECIAL="break,\
5	:,\
6	continue,\
7	. /dev/null,
8	eval,
9	exec,
10	export -p,
11	readonly -p,
12	set,
13	shift 0,
14	times,
15	trap,
16	unset foo"
17
18UTILS="alias,\
19	bg,\
20	bind,\
21	cd,\
22	command echo,\
23	echo,\
24	false,\
25	fc -l,\
26	fg,\
27	getopts a var,\
28	hash,\
29	jobs,\
30	printf a,\
31	pwd,\
32	read var < /dev/null,\
33	test,\
34	true,\
35	type ls,\
36	ulimit,\
37	umask,\
38	unalias -a,\
39	wait"
40
41set -e
42
43# For special built-ins variable assignments affect the shell environment.
44set -- ${SPECIAL}
45for cmd in "$@"
46do
47	${SH} -c "VAR=1; VAR=0 ${cmd}; exit \${VAR}" >/dev/null 2>&1
48done
49
50# For other built-ins and utilities they do not.
51set -- ${UTILS}
52for cmd in "$@"
53do
54	${SH} -c "VAR=0; VAR=1 ${cmd}; exit \${VAR}" >/dev/null 2>&1
55done
56