diff --git a/script/build/roms b/script/build/roms
index ff50d9b7257b305cd9812ca8c56d8c235d7034fb..a96ad89bf23a2746fe88fc3cdfd2c37b2beb8b74 100755
--- a/script/build/roms
+++ b/script/build/roms
@@ -31,8 +31,12 @@ main()
 {
 	while [ $# -gt 0 ]; do
 		case ${1} in
-		help) usage && exit 0 ;;
-		list) items config/coreboot && exit 0 ;;
+		help)
+			usage
+			exit 0 ;;
+		list)
+			items config/coreboot || :
+			exit 0 ;;
 		-d) _displaymode="${2}" ;;
 		-p) _payload="${2}" ;;
 		-k) _keyboard="${2}" ;;
@@ -216,10 +220,11 @@ build_target()
 build_roms()
 {
 	cbcfg="${1}"
-	[ ! -f "${cbcfg}" ] && \
+	if [ ! -f "${cbcfg}" ]; then
 		printf "'%s' does not exist. Skipping build for %s %s %s\n" \
-		    "${cbcfg}" "${board}" "${displaymode}" "${initmode}" \
-		    1>&2 && return 0
+		    "${cbcfg}" "${board}" "${displaymode}" "${initmode}" 1>&2
+		return 0
+	fi
 
 	x_ ./update trees -b coreboot ${board}
 
diff --git a/script/build/serprog b/script/build/serprog
index 93ea9302c72dc5b0e71d39e9cef7d0190618aa87..7f8664a97676ef045ee5201ec09d8e41d705000a 100755
--- a/script/build/serprog
+++ b/script/build/serprog
@@ -34,7 +34,10 @@ main()
 	x_ mkdir -p "bin/serprog_${platform}"
 
 	if [ $# -gt 1 ] ; then
-		[ "${2}" = "list" ] && print_boards ${boards_dir} && return 0
+		if [ "${2}" = "list" ]; then
+			print_boards ${boards_dir}
+			return 0
+		fi
 		build_${platform}_rom "${2}"
 	else
 		printf "Building all serprog targets\n"
diff --git a/script/update/trees b/script/update/trees
index a930bed11acc6e8c8663bb73c93bbe234711b1f3..bd0fcb61484586bd4ab788fc566c1ca0c1a7e241 100755
--- a/script/update/trees
+++ b/script/update/trees
@@ -37,8 +37,11 @@ main()
 	[ -z "${_f}" ] && err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)"
 	[ -z "${project}" ] && err "project name not specified"
 
-	[ -f "config/${project}/build.list" ] && build_targets $@ && return 0
-	build_projects $@
+	if [ -f "config/${project}/build.list" ]; then
+		build_targets $@
+	else
+		build_projects $@
+	fi
 }
 
 build_projects()
diff --git a/script/vendor/download b/script/vendor/download
index 12231b3946b418fe0826ece7cef1ca70be945694..4613c2b639b460a7766f7f3bd6633c369323a4d2 100755
--- a/script/vendor/download
+++ b/script/vendor/download
@@ -140,8 +140,10 @@ vendor_checksum()
 
 mkdirs()
 {
-	[ -f "${1}" ] && \
-		printf "mkdirs ${1} ${2}: already downloaded\n" 1>&2 && return 1
+	if [ -f "${1}" ]; then
+		printf "mkdirs ${1} ${2}: already downloaded\n" 1>&2
+		return 1
+	fi
 	mkdir -p "${1%/*}" || err "mkdirs: !mkdir -p ${1%/*}"
 	x_ rm -Rf "${appdir}"
 	x_ mkdir -p "${appdir}/"
diff --git a/script/vendor/inject b/script/vendor/inject
index 93017ceca95e6480af7502f4904bdc665213c448..088851ca58642b458c7d7329dc024d2744c5f1c8 100755
--- a/script/vendor/inject
+++ b/script/vendor/inject
@@ -14,8 +14,10 @@ eval "$(setvars "" archive rom modifygbe nukemode release new_mac)"
 main()
 {
 	[ $# -lt 1 ] && err "No options specified."
-	[ "${1}" = "listboards" ] && \
-		items config/coreboot && exit 0
+	if [ "${1}" = "listboards" ]; then
+		items config/coreboot || :
+		exit 0
+	fi
 
 	archive="${1}"