[arch-projects] [PATCH 5/7] standardize syntax in [[ and ((

Dave Reisner d at falconindy.com
Sat Mar 26 16:32:01 EDT 2011


* checks for variable existance should not use -n or quotes
* avoid using -eq, this is what arithmetic expansion is for
* always quote the LHS of a [[
* always quote proper arrays expanded with @

Signed-off-by: Dave Reisner <d at falconindy.com>
---
 network     |   40 ++++++++++++++++++++--------------------
 rc.shutdown |    6 +++---
 rc.single   |    2 +-
 rc.sysinit  |   18 +++++++++---------
 4 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/network b/network
index 5a261b4..27df68a 100755
--- a/network
+++ b/network
@@ -69,7 +69,7 @@ ifdown() {
 }
 
 iflist() {
-	for ifline in ${INTERFACES[@]}; do
+	for ifline in "${INTERFACES[@]}"; do
 		if [[ $ifline = ${ifline#!} ]]; then
 			printf " $ifline:\t"
 		else
@@ -110,8 +110,8 @@ rtdown() {
 }
 
 rtlist() {
-	for rtline in ${ROUTES[@]}; do
-		if [[ $rtline = ${rtline#!} ]]; then
+	for rtline in "${ROUTES[@]}"; do
+		if [[ "$rtline" = ${rtline#!} ]]; then
 			printf " $rtline:\t"
 		else
 			printf "$rtline:\t"
@@ -121,8 +121,8 @@ rtlist() {
 }
 
 bond_up() {
-	for ifline in ${BOND_INTERFACES[@]}; do
-		if [[ $ifline = ${ifline#!} ]]; then
+	for ifline in "${BOND_INTERFACES[@]}"; do
+		if [[ "$ifline" = ${ifline#!} ]]; then
 			bondcfg="bond_$ifline"
 			if [[ ${!bondcfg} ]]; then
 				/sbin/ifenslave $ifline ${!bondcfg} || error=1
@@ -132,8 +132,8 @@ bond_up() {
 }
 
 bond_down() {
-	for ifline in ${BOND_INTERFACES[@]}; do
-		if [[ $ifline = ${ifline#!} ]]; then
+	for ifline in "${BOND_INTERFACES[@]}"; do
+		if [[ "$ifline" = ${ifline#!} ]]; then
 			bondcfg="bond_$ifline"
 			/sbin/ifenslave -d $ifline ${!bondcfg} || error=1
 		fi
@@ -141,8 +141,8 @@ bond_down() {
 }
 
 bridge_up() {
-	for br in ${BRIDGE_INTERFACES[@]}; do
-		if [[ $br = ${br#!} ]]; then
+	for br in "${BRIDGE_INTERFACES[@]}"; do
+		if [[ "$br" = ${br#!} ]]; then
 			# if the bridge already exists, remove it
 			if [[ $(/sbin/ifconfig $br 2>/dev/null) ]]; then
 				/sbin/ifconfig $br down
@@ -151,9 +151,9 @@ bridge_up() {
 			/usr/sbin/brctl addbr $br
 			brifs="bridge_$br"
 			for brif in ${!brifs}; do
-				if [[ $brif = ${brif#!} ]]; then
+				if [[ "$brif" = ${brif#!} ]]; then
 					for ifline in ${BOND_INTERFACES[@]}; do
-						if [[ $brif = $ifline && $ifline = ${ifline#!} ]]; then
+						if [[ "$brif" = $ifline && "$ifline" = ${ifline#!} ]]; then
 							ifup $ifline
 							bondcfg="bond_$ifline"
 							/sbin/ifenslave $ifline ${!bondcfg} || error=1
@@ -169,8 +169,8 @@ bridge_up() {
 }
 
 bridge_down() {
-	for br in ${BRIDGE_INTERFACES[@]}; do
-		if [[ $br = ${br#!} ]]; then
+	for br in "${BRIDGE_INTERFACES[@]}"; do
+		if [[ "$br" = ${br#!} ]]; then
 			/usr/sbin/brctl delbr $br
 		fi
 	done
@@ -189,8 +189,8 @@ case "$1" in
 		# bring up bridge interfaces
 		bridge_up
 		# bring up ethernet interfaces
-		for ifline in ${INTERFACES[@]}; do
-			if [[ $ifline = ${ifline#!} ]]; then
+		for ifline in "${INTERFACES[@]}"; do
+			if [[ "$ifline" = ${ifline#!} ]]; then
 				ifup $ifline || error=1
 			fi
 		done
@@ -198,7 +198,7 @@ case "$1" in
 		bond_up
 		# bring up routes
 		for rtline in "${ROUTES[@]}"; do
-			if [ "$rtline" = "${rtline#!}" ]; then
+			if [[ "$rtline" = ${rtline#!} ]]; then
 				rtup $rtline || error=1
 			fi
 		done
@@ -215,7 +215,7 @@ case "$1" in
 		#	exit
 		#fi
 
-		if [[ $NETWORK_PERSIST =~ yes|YES && $RUNLEVEL == [06] ]]; then
+		if [[ "$NETWORK_PERSIST" =~ yes|YES && "$RUNLEVEL" = [06] ]]; then
 			status "Skipping Network Shutdown" true
 			exit 0
 		fi
@@ -224,20 +224,20 @@ case "$1" in
 		rm_daemon network
 		error=0
 		for rtline in "${ROUTES[@]}"; do
-			if [[ $rtline = ${rtline#!} ]]; then
+			if [[ "$rtline" = ${rtline#!} ]]; then
 				rtdown $rtline || error=1
 			fi
 		done
 		# bring down bond interfaces
 		bond_down
 		for ifline in ${INTERFACES[@]}; do
-			if [[ $ifline = ${ifline#!} ]]; then
+			if [[ "$ifline" = ${ifline#!} ]]; then
 				ifdown $ifline || error=1
 			fi
 		done
 		# bring down bridge interfaces
 		bridge_down
-		if ((error == 0)); then
+		if (( error == 0 )); then
 			stat_done
 		else
 			stat_fail
diff --git a/rc.shutdown b/rc.shutdown
index 499459f..9a04014 100755
--- a/rc.shutdown
+++ b/rc.shutdown
@@ -61,7 +61,7 @@ stat_busy "Deactivating Swap"
 stat_done
 
 # stop monitoring of lvm2 groups before unmounting filesystems
-if [[ $USELVM =~ yes|YES && -x /sbin/lvm && -d /sys/block ]]; then
+if [[ "$USELVM" =~ yes|YES && -x /sbin/lvm && -d /sys/block ]]; then
 	stat_busy "Deactivating monitoring of LVM2 groups"
 	/sbin/vgchange --monitor n >/dev/null 2>&1
 	stat_done
@@ -86,7 +86,7 @@ if [[ -f /etc/crypttab && -n $CS ]] && /bin/grep -q ^[^#] /etc/crypttab; then
 	stat_done
 fi
 
-if [[ $USELVM =~ yes|YES && -x /sbin/lvm && -d /sys/block ]]; then
+if [[ "$USELVM" =~ yes|YES && -x /sbin/lvm && -d /sys/block ]]; then
 	stat_busy "Deactivating LVM2 groups"
 	/sbin/vgchange --sysinit -a n >/dev/null 2>&1
 	stat_done
@@ -100,7 +100,7 @@ run_hook shutdown_poweroff
 
 # Power off or reboot
 printsep
-if [[ $RUNLEVEL = 0 ]]; then
+if (( RUNLEVEL == 0 )); then
 	printhl "${C_H2}POWER OFF"
 	/sbin/poweroff -d -f -h -i
 else
diff --git a/rc.single b/rc.single
index aab2b58..de50a47 100755
--- a/rc.single
+++ b/rc.single
@@ -46,7 +46,7 @@ fi
 
 run_hook single_end
 
-if [[ $RUNLEVEL = 1 ]]; then
+if (( RUNLEVEL == 1 )); then
 	printsep
 	printhl "Entering single-user mode..."
 	# make sure /dev/initctl is in place
diff --git a/rc.sysinit b/rc.sysinit
index 3d0eb02..b08d927 100755
--- a/rc.sysinit
+++ b/rc.sysinit
@@ -33,7 +33,7 @@ fi
 
 # anything more serious than KERN_WARNING goes to the console
 # 'verbose' cmdline parameter enables more messages
-if [[ -n "$verbose" ]]; then
+if [[ $verbose ]]; then
 	/bin/dmesg -n 8
 else
 	/bin/dmesg -n 3
@@ -162,11 +162,11 @@ if [[ -f /etc/crypttab && -n $CS ]] && /bin/grep -q ^[^#] /etc/crypttab; then
 						# This sanity check _should_ be sufficient, but it might not.
 						# This may cause dataloss if it is not used carefully.
 						/sbin/blkid -p "$2" &>/dev/null
-						if [[ $? -eq 2 ]]; then
+						if (( $? == 2 )); then
 							_overwriteokay=1
 						fi
 					fi
-					if [[ $_overwriteokay -eq 0 ]]; then
+					if (( _overwriteokay == 0 )); then
 						false
 					elif $CS -d /dev/urandom $4 $open "$a" "$b" >/dev/null; then
 						stat_append "creating swapspace.."
@@ -204,7 +204,7 @@ if [[ -f /etc/crypttab && -n $CS ]] && /bin/grep -q ^[^#] /etc/crypttab; then
 				*)
 					echo "$3" | $CS $4 $open "$a" "$b" >/dev/null;;
 			esac
-			if (($? != 0)); then
+			if (( $? != 0 )); then
 				failed=1
 				stat_append "failed "
 			else
@@ -218,7 +218,7 @@ if [[ -f /etc/crypttab && -n $CS ]] && /bin/grep -q ^[^#] /etc/crypttab; then
 	else
 		stat_fail
 	fi
-	if [[ ${crypto_unlocked} -eq 1 ]]; then
+	if (( crypto_unlocked == 1 )); then
 		# Maybe someone has LVM on an encrypted block device
 		activate_vgs
 	fi
@@ -246,11 +246,11 @@ if [[ -x /sbin/fsck ]]; then
 	run_hook sysinit_prefsck
 	/sbin/fsck -A -T -C$FSCK_FD -a -t "$NETFS,noopts=_netdev" $FORCEFSCK >$FSCK_OUT 2>$FSCK_ERR
 	fsckret=$?
-	if ((fsckret > 1)); then
+	if (( fsckret > 1 )); then
 		stat_fail
 	fi
 	run_hook sysinit_postfsck
-	if (( ( fsckret & 2) == 2)); then
+	if (( (fsckret & 2) == 2 )); then
 		echo
 		echo "********************** REBOOT REQUIRED *********************"
 		echo "*                                                          *"
@@ -260,7 +260,7 @@ if [[ -x /sbin/fsck ]]; then
 		echo
 		/bin/sleep 15
 		fsck_reboot
-	elif ((fsckret > 1 && fsckret != 32)); then
+	elif (( fsckret > 1 && fsckret != 32 )); then
 		echo
 		echo "*****************  FILESYSTEM CHECK FAILED  ****************"
 		echo "*                                                          *"
@@ -280,7 +280,7 @@ fi
 
 stat_busy "Mounting Local Filesystems"
 /bin/mount -n -o remount,rw /
-if [ -x /bin/findmnt -a -e /proc/self/mountinfo ]; then
+if [[ -x /bin/findmnt && -e /proc/self/mountinfo ]]; then
 	/bin/findmnt -rnu -o SOURCE,TARGET,FSTYPE,OPTIONS >| /etc/mtab
 else
 	cat /proc/mounts >| /etc/mtab
-- 
1.7.4.1



More information about the arch-projects mailing list