[v2] Remove double equals.

Submitted by Robert Langhammer on July 25, 2018, 4 p.m.

Details

Message ID 20180725160002.14702-1-rlanghammer@web.de
State Superseded
Headers show

Commit Message

Robert Langhammer July 25, 2018, 4 p.m.
== is a bash specific alias for = , and
should not be used in #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts
either, where the shell defaults to /bin/sh.

Signed-off-by: Robert Langhammer <rlanghammer@web.de>

---

Changes in v2:
- do an integer comparison when the operand is an integer
- use -z to test an empty string

---
 .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
 .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
 .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
 .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
 .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
 .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
 .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26 +++++++++++-----------
 .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
 .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
 .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
 10 files changed, 40 insertions(+), 40 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
index 8c80802..89af84c 100644
--- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
+++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
@@ -94,10 +94,10 @@  getGatewayHoodfile() {
 }
 
 getKeyserverHoodfile() {
-	if [ $# == 1 ]; then
+	if [ $# -eq 1 ]; then
 		lat=$(uci -q get fff.system.latitude)
 		long=$(uci -q get fff.system.longitude)
-	elif [ $# == 3 ]; then
+	elif [ $# -eq 3 ]; then
 		lat=$2
 		long=$3
 	else
diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index 86d83fc..c2c2506 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -158,16 +158,16 @@  if [ -s "$hoodfile" ]; then
 				exit 1
 			fi
 
-			# add 802.11s mesh if type == "802.11s"
-			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ] ) || [ "$mesh_type2" == "802.11s" ]; then
+			# add 802.11s mesh if type = "802.11s"
+			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "802.11s" ] ) || [ "$mesh_type2" = "802.11s" ]; then
 				if ! wifiAddMesh "$radio" "$mesh_id"; then
 					echo "Can't add Mesh interface on $radio."
 					exit 1
 				fi
 			fi
 
-			# add IBSS mesh if type == "ibss"
-			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ] ) || [ "$mesh_type2" == "ibss" ]; then
+			# add IBSS mesh if type = "ibss"
+			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ] ) || [ "$mesh_type2" = "ibss" ]; then
 				if ! wifiAddAdHocMesh "$radio" "$mesh_essid" "$mesh_bssid"; then
 					echo "Can't add AdHocMesh interface on $radio."
 					exit 1
diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
index 85930a8..2a1c631 100755
--- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
+++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
@@ -15,7 +15,7 @@  json_select vpn
 while json_select "$Index" > /dev/null
 do
 	json_get_var protocol protocol
-	if [ "$protocol" == "fastd" ]; then
+	if [ "$protocol" = "fastd" ]; then
 		json_get_var servername name
 		filename="/etc/fastd/fff/peers/$servername"
 		echo "#name \"${servername}\";" > "$filename"
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
index d149c04..b9ca1b6 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
@@ -9,7 +9,7 @@  UPGRADE_PATH="$(getUpgradePath)"
 echo -en "Content-Type: text/html\r\n\r\n"
 nav_entry() {
 	script_file="/cgi-bin/$1"
-	if [ "$script_file" == "$REQUEST_URI" ] ; then
+	if [ "$script_file" = "$REQUEST_URI" ] ; then
 		local class_active=' class="active"'
 	fi
 	echo -ne "\t<li${class_active}><a href=\"${script_file}\">$2</a></li>\n\t\t"
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
index 21bd4e7..821f7a0 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
@@ -5,7 +5,7 @@ 
 . /lib/functions/fff/evalhoodinfo
 
 # prepare
-if [ "$REQUEST_METHOD" == "POST" ] ; then
+if [ "$REQUEST_METHOD" = "POST" ] ; then
 	if [ "$POST_resethood" != "" ] ; then
 		# reset hood
 		rm "$hoodfilecopy" 2> /dev/null
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
index d3287bf..fc3055a 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
@@ -2,10 +2,10 @@ 
 
 <%
 # write
-if [ "$REQUEST_METHOD" == "POST" ] ; then
+if [ "$REQUEST_METHOD" = "POST" ] ; then
 	#check for special characters in password
 	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
-	if [ "$POST_pass1" == "" ] ; then
+	if [ -z "$POST_pass1" ] ; then
 		MSG='<span class="red">Das Passwort darf nicht leer sein!</span>'
     elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then   
 		MSG='<span class="red">Passwort enth&auml;lt ung&uuml;ltige Zeichen!</span>'
@@ -46,7 +46,7 @@  fi
 <%in /www/ssl/cgi-bin/footer %>
 <%
 #force instant password change
-if [ "$restart_uhttpd" == "1" ] ; then
+if [ "$restart_uhttpd" -eq 1 ] ; then
 	/etc/init.d/uhttpd restart 2>/dev/null
 fi
 %>
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
index 5912126..01506fc 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
@@ -3,7 +3,7 @@ 
 <%
 board_name=$(uci -q get board.model.name)
 # write
-if [ "$REQUEST_METHOD" == "POST" ] ; then
+if [ "$REQUEST_METHOD" = "POST" ] ; then
 	if [ "$POST_change_mode" != "" ] ; then
 		sed -i '/^.*# set via WebUI/d' /etc/network.config
 		echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> /etc/network.config
@@ -45,7 +45,7 @@  format_state() {
 format_port() {
 	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
 	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
-	if [ "$link" == "up" ] ; then
+	if [ "$link" = "up" ] ; then
 		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
 		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
 	else
@@ -95,7 +95,7 @@  format_port() {
 				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then
 					wanif=$(uci -q get network.wan.ifname)
 					link=$(cat /sys/class/net/${wanif}/operstate)
-					if [ "$link" == "up" ] ; then
+					if [ "$link" = "up" ] ; then
 						speed="connected"
 					else
 						speed="no link"
@@ -166,10 +166,10 @@  format_port() {
 				<th style="width: 1em;">Anschluss&nbsp;Modus:</th>
 				<td>
 					<select name="mode">
-						<option value="BATMAN" <% [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
-						<option value="CLIENT" <% [ "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
+						<option value="BATMAN" <% [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
+						<option value="CLIENT" <% [ "$ETHMODE" = "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
 						<% if grep -q "ONE_PORT" "/etc/network.$board_name" ; then %>
-						<option value="WAN" <% [ "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
+						<option value="WAN" <% [ "$ETHMODE" = "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
 						<% fi %>
 					</select>
 				</td>
@@ -207,16 +207,16 @@  format_port() {
 			<tr>
 				<td>
 					<select name="mode0">
-						<option value="BATMAN" <% [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
-						<option value="CLIENT" <% [ "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
-						<option value="WAN" <% [ "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
+						<option value="BATMAN" <% [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
+						<option value="CLIENT" <% [ "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
+						<option value="WAN" <% [ "$LAN0MODE" = "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
 					</select>
 				</td>
 				<td>
 					<select name="mode1">
-						<option value="BATMAN" <% [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
-						<option value="CLIENT" <% [ "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
-						<option value="WAN" <% [ "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
+						<option value="BATMAN" <% [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
+						<option value="CLIENT" <% [ "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
+						<option value="WAN" <% [ "$LAN1MODE" = "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
 					</select>
 				</td>
 				<td><input type="submit" name="change_twoport" /></td>
@@ -240,7 +240,7 @@  format_port() {
 <%in /www/ssl/cgi-bin/footer %>
 <%
 # write
-if [ "$do_reboot" == "1" ] ; then
+if [ "$do_reboot" -eq 1 ] ; then
 	reboot
 fi
 %>
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
index eddc4ff..2efdf3e 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
@@ -2,7 +2,7 @@ 
 
 <%
 # prepare
-if [ "$REQUEST_METHOD" == "POST" ] ; then
+if [ "$REQUEST_METHOD" = "POST" ] ; then
 	if [ "$POST_reboot" != "" ] ; then
 		do_reboot=1
 		MSG='<span class="green">Router wird neugestartet...</span>'
@@ -29,7 +29,7 @@  fi
 <%in /www/ssl/cgi-bin/footer %>
 <%
 # write
-if [ "$do_reboot" == "1" ] ; then
+if [ "$do_reboot" -eq 1 ] ; then
 	reboot
 fi
 %>
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
index cfb3a6b..7dd5eed 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
@@ -2,7 +2,7 @@ 
 
 <%
 # write
-if [ "$REQUEST_METHOD" == "POST" ] ; then
+if [ "$REQUEST_METHOD" = "POST" ] ; then
 	#check for valid hostname as specified in rfc 1123
 	#see http://stackoverflow.com/a/3824105
 	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
@@ -24,7 +24,7 @@  if [ "$REQUEST_METHOD" == "POST" ] ; then
 
 		# Bitratenbegrenzung
 		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set fff.trafficcontrol=fff
-		if [ "$POST_traffic_limit" == "on" ] ; then
+		if [ "$POST_traffic_limit" = "on" ] ; then
 			uci -q set "fff.trafficcontrol.enabled=1"
 			uci -q set "simple-tc.example.enabled=1"
 		else
@@ -40,7 +40,7 @@  if [ "$REQUEST_METHOD" == "POST" ] ; then
 
 		# Restliche Einstellungen
 		uci -q set "fff.notifyupdate=webui"
-		if [ "$POST_upgrade_notification" == "on" ] ; then
+		if [ "$POST_upgrade_notification" = "on" ] ; then
 			uci -q set "fff.notifyupdate.value=1"
 		else
 			uci -q set "fff.notifyupdate.value=0"
@@ -50,7 +50,7 @@  if [ "$REQUEST_METHOD" == "POST" ] ; then
 
 		if uci -q get system.poe_passthrough > /dev/null ; then
 			uci -q set "fff.poe_passthrough=fff"
-			if [ "$POST_poe_passthrough" == "on" ] ; then
+			if [ "$POST_poe_passthrough" = "on" ] ; then
 				uci -q set "fff.poe_passthrough.active=1"
 				uci -q set "system.poe_passthrough.value=1"
 			else
@@ -70,12 +70,12 @@  fi
 <%
 # read
 chkd='checked="checked" '
-if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then # not set=0
+if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then # not set=0
 	traffic_checked="$chkd"
 else
 	traffic_checked=""
 fi
-if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not set=1
+if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not set=1
 	upgrade_checked=""
 else
 	upgrade_checked="$chkd"
@@ -122,7 +122,7 @@  fi
 		
 		<%
 		if uci -q get system.poe_passthrough > /dev/null ; then
-			if [ "$(uci -q get 'fff.poe_passthrough.active')" == "1" ] ; then # not set=0
+			if [ "$(uci -q get 'fff.poe_passthrough.active')" -eq 1 ] ; then # not set=0
 				poe_pt_checked="$chkd"
 			else
 				poe_pt_checked=""
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
index af46023..9762edc 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
@@ -2,10 +2,10 @@ 
 
 <%
 # prepare
-if [ "$REQUEST_METHOD" == "POST" ] ; then
+if [ "$REQUEST_METHOD" = "POST" ] ; then
 	if [ "$POST_reset" != "" ] ; then
 		# reset
-		if [ "$FORM_really_reset" == "on" ] ; then
+		if [ "$FORM_really_reset" = "on" ] ; then
 			do_reset=1
 			MSG='<span class="green">Router wird zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
 		fi
@@ -13,12 +13,12 @@  if [ "$REQUEST_METHOD" == "POST" ] ; then
 		# upgrade
 		if [ ! -f "$HASERL_firmware_path" ] ; then
 			MSG='<span class="red">Firmware Datei nicht gefunden!</span>'
-		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" == "0" ] ; then
+		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0 ] ; then
 			MSG='<span class="red">Firmware Datei ist leer!</span>'
 		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ; then
 			MSG="<span class=\"red\">Firmware Datei ung&uuml;ltig: <tt>${error}</tt></span>"
 		else
-			if [ "$POST_keep_config" == "on" ] ; then
+			if [ "$POST_keep_config" = "on" ] ; then
 				args=""
 			else
 				args="-n"
@@ -63,12 +63,12 @@  fi
 <%in /www/ssl/cgi-bin/footer %>
 <%
 # write
-if [ "$do_reset" == "1" ] ; then
+if [ "$do_reset" -eq 1 ] ; then
 	echo "<pre>"
 	echo y | firstboot
 	reboot
 	echo "</pre>"
-elif [ "$do_sysupgrade" == "1" ] ; then
+elif [ "$do_sysupgrade" -eq 1 ] ; then
 	echo "<pre>"
 	echo "# sysupgrade $args $HASERL_firmware_path"
 	sysupgrade $args $HASERL_firmware_path

Comments

Tim Niemeyer July 25, 2018, 9:17 p.m.
Am Mittwoch, den 25.07.2018, 18:00 +0200 schrieb Robert Langhammer:
> == is a bash specific alias for = , and
> should not be used in #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts
> either, where the shell defaults to /bin/sh.
> 
> > Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> 
> ---
> 
> Changes in v2:
> - do an integer comparison when the operand is an integer
> - use -z to test an empty string
> 
> ---
>  .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
>  .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
>  .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
>  .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
>  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
>  .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
>  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26 +++++++++++-----------
>  .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
>  .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
>  10 files changed, 40 insertions(+), 40 deletions(-)
> 
> diff --git a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> index 8c80802..89af84c 100644
> --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> @@ -94,10 +94,10 @@ getGatewayHoodfile() {
>  }
>  
>  getKeyserverHoodfile() {
> > -	if [ $# == 1 ]; then
> > +	if [ $# -eq 1 ]; then
> >  		lat=$(uci -q get fff.system.latitude)
> >  		long=$(uci -q get fff.system.longitude)
> > -	elif [ $# == 3 ]; then
> > +	elif [ $# -eq 3 ]; then
> >  		lat=$2
> >  		long=$3
> >  	else
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 86d83fc..c2c2506 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -158,16 +158,16 @@ if [ -s "$hoodfile" ]; then
> >  				exit 1
> >  			fi
>  
> > -			# add 802.11s mesh if type == "802.11s"
> > -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ] ) || [ "$mesh_type2" == "802.11s" ]; then
> > +			# add 802.11s mesh if type = "802.11s"
> > +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "802.11s" ] ) || [ "$mesh_type2" = "802.11s" ]; then
> >  				if ! wifiAddMesh "$radio" "$mesh_id"; then
> >  					echo "Can't add Mesh interface on $radio."
> >  					exit 1
> >  				fi
> >  			fi
>  
> > -			# add IBSS mesh if type == "ibss"
> > -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ] ) || [ "$mesh_type2" == "ibss" ]; then
> > +			# add IBSS mesh if type = "ibss"
> > +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ] ) || [ "$mesh_type2" = "ibss" ]; then
> >  				if ! wifiAddAdHocMesh "$radio" "$mesh_essid" "$mesh_bssid"; then
> >  					echo "Can't add AdHocMesh interface on $radio."
> >  					exit 1
> diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> index 85930a8..2a1c631 100755
> --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> @@ -15,7 +15,7 @@ json_select vpn
>  while json_select "$Index" > /dev/null
>  do
> >  	json_get_var protocol protocol
> > -	if [ "$protocol" == "fastd" ]; then
> > +	if [ "$protocol" = "fastd" ]; then
> >  		json_get_var servername name
> >  		filename="/etc/fastd/fff/peers/$servername"
> >  		echo "#name \"${servername}\";" > "$filename"
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> index d149c04..b9ca1b6 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> @@ -9,7 +9,7 @@ UPGRADE_PATH="$(getUpgradePath)"
>  echo -en "Content-Type: text/html\r\n\r\n"
>  nav_entry() {
> >  	script_file="/cgi-bin/$1"
> > -	if [ "$script_file" == "$REQUEST_URI" ] ; then
> > +	if [ "$script_file" = "$REQUEST_URI" ] ; then
> >  		local class_active=' class="active"'
> >  	fi
> >  	echo -ne "\t<li${class_active}><a href=\"${script_file}\">$2</a></li>\n\t\t"
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> index 21bd4e7..821f7a0 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> @@ -5,7 +5,7 @@
>  . /lib/functions/fff/evalhoodinfo
>  
>  # prepare
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >  	if [ "$POST_resethood" != "" ] ; then
> >  		# reset hood
> >  		rm "$hoodfilecopy" 2> /dev/null
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> index d3287bf..fc3055a 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> @@ -2,10 +2,10 @@
>  
>  <%
>  # write
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >  	#check for special characters in password
> >  	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
> > -	if [ "$POST_pass1" == "" ] ; then
> > +	if [ -z "$POST_pass1" ] ; then
> >  		MSG='<span class="red">Das Passwort darf nicht leer sein!</span>'
>      elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then   
> >  		MSG='<span class="red">Passwort enth&auml;lt ung&uuml;ltige Zeichen!</span>'
> @@ -46,7 +46,7 @@ fi
>  <%in /www/ssl/cgi-bin/footer %>
>  <%
>  #force instant password change
> -if [ "$restart_uhttpd" == "1" ] ; then
> +if [ "$restart_uhttpd" -eq 1 ] ; then
Für den Fall, dass $restart_uhttpd leer ist, würde es nicht korrekt
sein:
--- %< ---
# if [[ "" -eq 1 ]]; then echo true; else echo false; fi
-ash: out of range
false
--- >% ---

Dummerweise weiß ich jetzt auch nicht, wie man damit gut umgeht.

a) Doch einen String-Vergleich machen?

if [ "X$restart_uhttpd" = "X1" ] ; then

b) Oder beim -eq bleiben, aber ne Null ran?

if [ "0$restart_uhttpd" -eq 1 ] ; then

c) Oder die Fehlermeldung ignorieren??

Keine Ahnung.. ;)

Diese Anmerkung gilt natürlich auch für alle folgenden -eq Vergleiche.

Tim

>  	/etc/init.d/uhttpd restart 2>/dev/null
>  fi
>  %>
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> index 5912126..01506fc 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> @@ -3,7 +3,7 @@
>  <%
>  board_name=$(uci -q get board.model.name)
>  # write
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >  	if [ "$POST_change_mode" != "" ] ; then
> >  		sed -i '/^.*# set via WebUI/d' /etc/network.config
> >  		echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> /etc/network.config
> @@ -45,7 +45,7 @@ format_state() {
>  format_port() {
> >  	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
> >  	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
> > -	if [ "$link" == "up" ] ; then
> > +	if [ "$link" = "up" ] ; then
> >  		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
> >  		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
> >  	else
> @@ -95,7 +95,7 @@ format_port() {
> >  				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then
> >  					wanif=$(uci -q get network.wan.ifname)
> >  					link=$(cat /sys/class/net/${wanif}/operstate)
> > -					if [ "$link" == "up" ] ; then
> > +					if [ "$link" = "up" ] ; then
> >  						speed="connected"
> >  					else
> >  						speed="no link"
> @@ -166,10 +166,10 @@ format_port() {
> >  				<th style="width: 1em;">Anschluss&nbsp;Modus:</th>
> >  				<td>
> >  					<select name="mode">
> > -						<option value="BATMAN" <% [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
> > -						<option value="CLIENT" <% [ "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
> > +						<option value="BATMAN" <% [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
> > +						<option value="CLIENT" <% [ "$ETHMODE" = "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
> >  						<% if grep -q "ONE_PORT" "/etc/network.$board_name" ; then %>
> > -						<option value="WAN" <% [ "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
> > +						<option value="WAN" <% [ "$ETHMODE" = "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
> >  						<% fi %>
> >  					</select>
> >  				</td>
> @@ -207,16 +207,16 @@ format_port() {
> >  			<tr>
> >  				<td>
> >  					<select name="mode0">
> > -						<option value="BATMAN" <% [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
> > -						<option value="CLIENT" <% [ "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
> > -						<option value="WAN" <% [ "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
> > +						<option value="BATMAN" <% [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
> > +						<option value="CLIENT" <% [ "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
> > +						<option value="WAN" <% [ "$LAN0MODE" = "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
> >  					</select>
> >  				</td>
> >  				<td>
> >  					<select name="mode1">
> > -						<option value="BATMAN" <% [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
> > -						<option value="CLIENT" <% [ "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
> > -						<option value="WAN" <% [ "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
> > +						<option value="BATMAN" <% [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
> > +						<option value="CLIENT" <% [ "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
> > +						<option value="WAN" <% [ "$LAN1MODE" = "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
> >  					</select>
> >  				</td>
> >  				<td><input type="submit" name="change_twoport" /></td>
> @@ -240,7 +240,7 @@ format_port() {
>  <%in /www/ssl/cgi-bin/footer %>
>  <%
>  # write
> -if [ "$do_reboot" == "1" ] ; then
> +if [ "$do_reboot" -eq 1 ] ; then
>  	reboot
>  fi
>  %>
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> index eddc4ff..2efdf3e 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> @@ -2,7 +2,7 @@
>  
>  <%
>  # prepare
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >  	if [ "$POST_reboot" != "" ] ; then
> >  		do_reboot=1
> >  		MSG='<span class="green">Router wird neugestartet...</span>'
> @@ -29,7 +29,7 @@ fi
>  <%in /www/ssl/cgi-bin/footer %>
>  <%
>  # write
> -if [ "$do_reboot" == "1" ] ; then
> +if [ "$do_reboot" -eq 1 ] ; then
 	reboot
>  fi
>  %>
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> index cfb3a6b..7dd5eed 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> @@ -2,7 +2,7 @@
>  
>  <%
>  # write
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >  	#check for valid hostname as specified in rfc 1123
> >  	#see http://stackoverflow.com/a/3824105
> >  	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
> @@ -24,7 +24,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>  
> >  		# Bitratenbegrenzung
> >  		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set fff.trafficcontrol=fff
> > -		if [ "$POST_traffic_limit" == "on" ] ; then
> > +		if [ "$POST_traffic_limit" = "on" ] ; then
> >  			uci -q set "fff.trafficcontrol.enabled=1"
> >  			uci -q set "simple-tc.example.enabled=1"
> >  		else
> @@ -40,7 +40,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>  
> >  		# Restliche Einstellungen
> >  		uci -q set "fff.notifyupdate=webui"
> > -		if [ "$POST_upgrade_notification" == "on" ] ; then
> > +		if [ "$POST_upgrade_notification" = "on" ] ; then
> >  			uci -q set "fff.notifyupdate.value=1"
> >  		else
> >  			uci -q set "fff.notifyupdate.value=0"
> @@ -50,7 +50,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>  
> >  		if uci -q get system.poe_passthrough > /dev/null ; then
> >  			uci -q set "fff.poe_passthrough=fff"
> > -			if [ "$POST_poe_passthrough" == "on" ] ; then
> > +			if [ "$POST_poe_passthrough" = "on" ] ; then
> >  				uci -q set "fff.poe_passthrough.active=1"
> >  				uci -q set "system.poe_passthrough.value=1"
> >  			else
> @@ -70,12 +70,12 @@ fi
>  <%
>  # read
>  chkd='checked="checked" '
> -if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then # not set=0
> +if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then # not set=0
>  	traffic_checked="$chkd"
>  else
> >  	traffic_checked=""
>  fi
> -if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not set=1
> +if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not set=1
>  	upgrade_checked=""
>  else
> >  	upgrade_checked="$chkd"
> @@ -122,7 +122,7 @@ fi
>  		
> >  		<%
> >  		if uci -q get system.poe_passthrough > /dev/null ; then
> > -			if [ "$(uci -q get 'fff.poe_passthrough.active')" == "1" ] ; then # not set=0
> +			if [ "$(uci -q get 'fff.poe_passthrough.active')" -eq 1 ] ; then # not set=0
>  				poe_pt_checked="$chkd"
> >  			else
> >  				poe_pt_checked=""
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> index af46023..9762edc 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> @@ -2,10 +2,10 @@
>  
>  <%
>  # prepare
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >  	if [ "$POST_reset" != "" ] ; then
> >  		# reset
> > -		if [ "$FORM_really_reset" == "on" ] ; then
> > +		if [ "$FORM_really_reset" = "on" ] ; then
> >  			do_reset=1
> >  			MSG='<span class="green">Router wird zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
> >  		fi
> @@ -13,12 +13,12 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >  		# upgrade
> >  		if [ ! -f "$HASERL_firmware_path" ] ; then
> >  			MSG='<span class="red">Firmware Datei nicht gefunden!</span>'
> > -		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" == "0" ] ; then
> > +		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0 ] ; then
> >  			MSG='<span class="red">Firmware Datei ist leer!</span>'
> >  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ; then
> >  			MSG="<span class=\"red\">Firmware Datei ung&uuml;ltig: <tt>${error}</tt></span>"
> >  		else
> > -			if [ "$POST_keep_config" == "on" ] ; then
> > +			if [ "$POST_keep_config" = "on" ] ; then
> >  				args=""
> >  			else
> >  				args="-n"
> @@ -63,12 +63,12 @@ fi
>  <%in /www/ssl/cgi-bin/footer %>
>  <%
>  # write
> -if [ "$do_reset" == "1" ] ; then
> +if [ "$do_reset" -eq 1 ] ; then
> >  	echo "<pre>"
> >  	echo y | firstboot
> >  	reboot
> >  	echo "</pre>"
> -elif [ "$do_sysupgrade" == "1" ] ; then
> +elif [ "$do_sysupgrade" -eq 1 ] ; then
> >  	echo "<pre>"
> >  	echo "# sysupgrade $args $HASERL_firmware_path"
> >  	sysupgrade $args $HASERL_firmware_path
Adrian Schmutzler July 26, 2018, 8:46 a.m.
Bitte testen, ob das mit dem -z wirklich funktioniert. Ich meine mich dunkel
zu erinnern, dass bei dem POST password irgendwas unintuitiv war, als ich es
umgeschrieben habe.

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Robert Langhammer
> Sent: Mittwoch, 25. Juli 2018 18:00
> To: franken-dev@freifunk.net
> Subject: [PATCH v2] Remove double equals.
> 
> == is a bash specific alias for = , and
> should not be used in #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts
> either, where the shell defaults to /bin/sh.
> 
> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> 
> ---
> 
> Changes in v2:
> - do an integer comparison when the operand is an integer
> - use -z to test an empty string
> 
> ---
>  .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
>  .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
>  .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
>  .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
>  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
>  .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
>  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26
+++++++++++----------
> -
>  .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
>  .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
>  10 files changed, 40 insertions(+), 40 deletions(-)
> 
> diff --git
a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> index 8c80802..89af84c 100644
> --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> @@ -94,10 +94,10 @@ getGatewayHoodfile() {  }
> 
>  getKeyserverHoodfile() {
> -	if [ $# == 1 ]; then
> +	if [ $# -eq 1 ]; then
>  		lat=$(uci -q get fff.system.latitude)
>  		long=$(uci -q get fff.system.longitude)
> -	elif [ $# == 3 ]; then
> +	elif [ $# -eq 3 ]; then
>  		lat=$2
>  		long=$3
>  	else
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 86d83fc..c2c2506 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -158,16 +158,16 @@ if [ -s "$hoodfile" ]; then
>  				exit 1
>  			fi
> 
> -			# add 802.11s mesh if type == "802.11s"
> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" ==
"802.11s" ]
> ) || [ "$mesh_type2" == "802.11s" ]; then
> +			# add 802.11s mesh if type = "802.11s"
> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "802.11s"
] )
> || [
> +"$mesh_type2" = "802.11s" ]; then
>  				if ! wifiAddMesh "$radio" "$mesh_id"; then
>  					echo "Can't add Mesh interface on
> $radio."
>  					exit 1
>  				fi
>  			fi
> 
> -			# add IBSS mesh if type == "ibss"
> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ]
) ||
> [ "$mesh_type2" == "ibss" ]; then
> +			# add IBSS mesh if type = "ibss"
> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ]
) || [
> +"$mesh_type2" = "ibss" ]; then
>  				if ! wifiAddAdHocMesh "$radio"
> "$mesh_essid" "$mesh_bssid"; then
>  					echo "Can't add AdHocMesh interface
> on $radio."
>  					exit 1
> diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> index 85930a8..2a1c631 100755
> --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> @@ -15,7 +15,7 @@ json_select vpn
>  while json_select "$Index" > /dev/null
>  do
>  	json_get_var protocol protocol
> -	if [ "$protocol" == "fastd" ]; then
> +	if [ "$protocol" = "fastd" ]; then
>  		json_get_var servername name
>  		filename="/etc/fastd/fff/peers/$servername"
>  		echo "#name \"${servername}\";" > "$filename"
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> index d149c04..b9ca1b6 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> @@ -9,7 +9,7 @@ UPGRADE_PATH="$(getUpgradePath)"
>  echo -en "Content-Type: text/html\r\n\r\n"
>  nav_entry() {
>  	script_file="/cgi-bin/$1"
> -	if [ "$script_file" == "$REQUEST_URI" ] ; then
> +	if [ "$script_file" = "$REQUEST_URI" ] ; then
>  		local class_active=' class="active"'
>  	fi
>  	echo -ne "\t<li${class_active}><a
> href=\"${script_file}\">$2</a></li>\n\t\t"
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> index 21bd4e7..821f7a0 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> @@ -5,7 +5,7 @@
>  . /lib/functions/fff/evalhoodinfo
> 
>  # prepare
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>  	if [ "$POST_resethood" != "" ] ; then
>  		# reset hood
>  		rm "$hoodfilecopy" 2> /dev/null
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> index d3287bf..fc3055a 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> @@ -2,10 +2,10 @@
> 
>  <%
>  # write
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>  	#check for special characters in password
>  	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
> -	if [ "$POST_pass1" == "" ] ; then
> +	if [ -z "$POST_pass1" ] ; then
>  		MSG='<span class="red">Das Passwort darf nicht leer
> sein!</span>'
>      elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then
>  		MSG='<span class="red">Passwort enth&auml;lt
> ung&uuml;ltige Zeichen!</span>'
> @@ -46,7 +46,7 @@ fi
>  <%in /www/ssl/cgi-bin/footer %>
>  <%
>  #force instant password change
> -if [ "$restart_uhttpd" == "1" ] ; then
> +if [ "$restart_uhttpd" -eq 1 ] ; then
>  	/etc/init.d/uhttpd restart 2>/dev/null  fi  %> diff --git
> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> index 5912126..01506fc 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> @@ -3,7 +3,7 @@
>  <%
>  board_name=$(uci -q get board.model.name)  # write -if [
> "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>  	if [ "$POST_change_mode" != "" ] ; then
>  		sed -i '/^.*# set via WebUI/d' /etc/network.config
>  		echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >>
> /etc/network.config @@ -45,7 +45,7 @@ format_state() {
>  format_port() {
>  	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
>  	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
> -	if [ "$link" == "up" ] ; then
> +	if [ "$link" = "up" ] ; then
>  		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
>  		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
>  	else
> @@ -95,7 +95,7 @@ format_port() {
>  				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }'
> /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }'
> /etc/network.$board_name)" ] ; then
>  					wanif=$(uci -q get
> network.wan.ifname)
>  					link=$(cat
> /sys/class/net/${wanif}/operstate)
> -					if [ "$link" == "up" ] ; then
> +					if [ "$link" = "up" ] ; then
>  						speed="connected"
>  					else
>  						speed="no link"
> @@ -166,10 +166,10 @@ format_port() {
>  				<th style="width:
> 1em;">Anschluss&nbsp;Modus:</th>
>  				<td>
>  					<select name="mode">
> -						<option value="BATMAN" <%
> [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> -						<option value="CLIENT" <% [
> "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> +						<option value="BATMAN" <%
> [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> +						<option value="CLIENT" <% [
> "$ETHMODE" = "CLIENT" ] && echo -n
> +'selected="selected" ' %>>CLIENT</option>
>  						<% if grep -q "ONE_PORT"
> "/etc/network.$board_name" ; then %>
> -						<option value="WAN" <% [
> "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" '
> %>>WAN</option>
> +						<option value="WAN" <% [
> "$ETHMODE" = "WAN" ] && echo -n
> +'selected="selected" ' %>>WAN</option>
>  						<% fi %>
>  					</select>
>  				</td>
> @@ -207,16 +207,16 @@ format_port() {
>  			<tr>
>  				<td>
>  					<select name="mode0">
> -						<option value="BATMAN" <%
> [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> -						<option value="CLIENT" <% [
> "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> -						<option value="WAN" <% [
> "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" '
> %>>WAN</option>
> +						<option value="BATMAN" <%
> [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> +						<option value="CLIENT" <% [
> "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> +						<option value="WAN" <% [
> "$LAN0MODE" = "WAN" ] && echo -n
> +'selected="selected" ' %>>WAN</option>
>  					</select>
>  				</td>
>  				<td>
>  					<select name="mode1">
> -						<option value="BATMAN" <%
> [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> -						<option value="CLIENT" <% [
> "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> -						<option value="WAN" <% [
> "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" '
> %>>WAN</option>
> +						<option value="BATMAN" <%
> [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> +						<option value="CLIENT" <% [
> "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> +						<option value="WAN" <% [
> "$LAN1MODE" = "WAN" ] && echo -n
> +'selected="selected" ' %>>WAN</option>
>  					</select>
>  				</td>
>  				<td><input type="submit"
> name="change_twoport" /></td> @@ -240,7 +240,7 @@ format_port() {
> <%in /www/ssl/cgi-bin/footer %>  <%  # write -if [ "$do_reboot" == "1" ] ;
> then
> +if [ "$do_reboot" -eq 1 ] ; then
>  	reboot
>  fi
>  %>
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> index eddc4ff..2efdf3e 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> @@ -2,7 +2,7 @@
> 
>  <%
>  # prepare
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>  	if [ "$POST_reboot" != "" ] ; then
>  		do_reboot=1
>  		MSG='<span class="green">Router wird
> neugestartet...</span>'
> @@ -29,7 +29,7 @@ fi
>  <%in /www/ssl/cgi-bin/footer %>
>  <%
>  # write
> -if [ "$do_reboot" == "1" ] ; then
> +if [ "$do_reboot" -eq 1 ] ; then
>  	reboot
>  fi
>  %>
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> index cfb3a6b..7dd5eed 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> @@ -2,7 +2,7 @@
> 
>  <%
>  # write
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>  	#check for valid hostname as specified in rfc 1123
>  	#see http://stackoverflow.com/a/3824105
>  	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
> @@ -24,7 +24,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> 
>  		# Bitratenbegrenzung
>  		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set
> fff.trafficcontrol=fff
> -		if [ "$POST_traffic_limit" == "on" ] ; then
> +		if [ "$POST_traffic_limit" = "on" ] ; then
>  			uci -q set "fff.trafficcontrol.enabled=1"
>  			uci -q set "simple-tc.example.enabled=1"
>  		else
> @@ -40,7 +40,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> 
>  		# Restliche Einstellungen
>  		uci -q set "fff.notifyupdate=webui"
> -		if [ "$POST_upgrade_notification" == "on" ] ; then
> +		if [ "$POST_upgrade_notification" = "on" ] ; then
>  			uci -q set "fff.notifyupdate.value=1"
>  		else
>  			uci -q set "fff.notifyupdate.value=0"
> @@ -50,7 +50,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> 
>  		if uci -q get system.poe_passthrough > /dev/null ; then
>  			uci -q set "fff.poe_passthrough=fff"
> -			if [ "$POST_poe_passthrough" == "on" ] ; then
> +			if [ "$POST_poe_passthrough" = "on" ] ; then
>  				uci -q set "fff.poe_passthrough.active=1"
>  				uci -q set "system.poe_passthrough.value=1"
>  			else
> @@ -70,12 +70,12 @@ fi
>  <%
>  # read
>  chkd='checked="checked" '
> -if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then # not
set=0
> +if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then # not
> +set=0
>  	traffic_checked="$chkd"
>  else
>  	traffic_checked=""
>  fi
> -if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not set=1
> +if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not
> +set=1
>  	upgrade_checked=""
>  else
>  	upgrade_checked="$chkd"
> @@ -122,7 +122,7 @@ fi
> 
>  		<%
>  		if uci -q get system.poe_passthrough > /dev/null ; then
> -			if [ "$(uci -q get 'fff.poe_passthrough.active')" ==
"1" ]
> ; then # not set=0
> +			if [ "$(uci -q get 'fff.poe_passthrough.active')"
-eq 1 ] ;
> then #
> +not set=0
>  				poe_pt_checked="$chkd"
>  			else
>  				poe_pt_checked=""
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> index af46023..9762edc 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> @@ -2,10 +2,10 @@
> 
>  <%
>  # prepare
> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>  	if [ "$POST_reset" != "" ] ; then
>  		# reset
> -		if [ "$FORM_really_reset" == "on" ] ; then
> +		if [ "$FORM_really_reset" = "on" ] ; then
>  			do_reset=1
>  			MSG='<span class="green">Router wird
> zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
>  		fi
> @@ -13,12 +13,12 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>  		# upgrade
>  		if [ ! -f "$HASERL_firmware_path" ] ; then
>  			MSG='<span class="red">Firmware Datei nicht
> gefunden!</span>'
> -		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" == "0" ]
;
> then
> +		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0 ]
;
> then
>  			MSG='<span class="red">Firmware Datei ist
> leer!</span>'
>  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ;
> then
>  			MSG="<span class=\"red\">Firmware Datei
> ung&uuml;ltig: <tt>${error}</tt></span>"
>  		else
> -			if [ "$POST_keep_config" == "on" ] ; then
> +			if [ "$POST_keep_config" = "on" ] ; then
>  				args=""
>  			else
>  				args="-n"
> @@ -63,12 +63,12 @@ fi
>  <%in /www/ssl/cgi-bin/footer %>
>  <%
>  # write
> -if [ "$do_reset" == "1" ] ; then
> +if [ "$do_reset" -eq 1 ] ; then
>  	echo "<pre>"
>  	echo y | firstboot
>  	reboot
>  	echo "</pre>"
> -elif [ "$do_sysupgrade" == "1" ] ; then
> +elif [ "$do_sysupgrade" -eq 1 ] ; then
>  	echo "<pre>"
>  	echo "# sysupgrade $args $HASERL_firmware_path"
>  	sysupgrade $args $HASERL_firmware_path
> --
> 2.11.0
Adrian Schmutzler July 26, 2018, 8:49 a.m.
Hallo,

solange es nur um Gleichheit geht, würde ich bei dem String-Vergleich bleiben, weil der nachvollziehbar funktioniert.

Alles andere bietet in meinen Augen keinen echten Vorteil, aber macht das Verständnis des Codes komplexer.

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Tim Niemeyer
> Sent: Mittwoch, 25. Juli 2018 23:18
> To: Robert Langhammer <rlanghammer@web.de>; franken-
> dev@freifunk.net
> Subject: Re: [PATCH v2] Remove double equals.
> 
> Am Mittwoch, den 25.07.2018, 18:00 +0200 schrieb Robert Langhammer:
> > == is a bash specific alias for = , and should not be used in
> > #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts either, where the
> > shell defaults to /bin/sh.
> >
> > > Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> >
> > ---
> >
> > Changes in v2:
> > - do an integer comparison when the operand is an integer
> > - use -z to test an empty string
> >
> > ---
> >  .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
> >  .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
> >  .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
> >  .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
> >  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
> >  .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
> >  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26
> > +++++++++++-----------
> >  .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
> >  .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
> >  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
> >  10 files changed, 40 insertions(+), 40 deletions(-)
> >
> > diff --git
> > a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> > b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> > index 8c80802..89af84c 100644
> > --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> > +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> > @@ -94,10 +94,10 @@ getGatewayHoodfile() {
> >  }
> >
> >  getKeyserverHoodfile() {
> > > -	if [ $# == 1 ]; then
> > > +	if [ $# -eq 1 ]; then
> > >  		lat=$(uci -q get fff.system.latitude)
> > >  		long=$(uci -q get fff.system.longitude)
> > > -	elif [ $# == 3 ]; then
> > > +	elif [ $# -eq 3 ]; then
> > >  		lat=$2
> > >  		long=$3
> > >  	else
> > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > index 86d83fc..c2c2506 100755
> > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > @@ -158,16 +158,16 @@ if [ -s "$hoodfile" ]; then
> > >  				exit 1
> > >  			fi
> >
> > > -			# add 802.11s mesh if type == "802.11s"
> > > -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ]
> ) || [ "$mesh_type2" == "802.11s" ]; then
> > > +			# add 802.11s mesh if type = "802.11s"
> > > +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "802.11s" ] )
> || [
> > > +"$mesh_type2" = "802.11s" ]; then
> > >  				if ! wifiAddMesh "$radio" "$mesh_id"; then
> > >  					echo "Can't add Mesh interface on
> $radio."
> > >  					exit 1
> > >  				fi
> > >  			fi
> >
> > > -			# add IBSS mesh if type == "ibss"
> > > -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ] ) ||
> [ "$mesh_type2" == "ibss" ]; then
> > > +			# add IBSS mesh if type = "ibss"
> > > +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ] ) || [
> > > +"$mesh_type2" = "ibss" ]; then
> > >  				if ! wifiAddAdHocMesh "$radio"
> "$mesh_essid" "$mesh_bssid"; then
> > >  					echo "Can't add AdHocMesh interface
> on $radio."
> > >  					exit 1
> > diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> > b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> > index 85930a8..2a1c631 100755
> > --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> > +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> > @@ -15,7 +15,7 @@ json_select vpn
> >  while json_select "$Index" > /dev/null
> >  do
> > >  	json_get_var protocol protocol
> > > -	if [ "$protocol" == "fastd" ]; then
> > > +	if [ "$protocol" = "fastd" ]; then
> > >  		json_get_var servername name
> > >  		filename="/etc/fastd/fff/peers/$servername"
> > >  		echo "#name \"${servername}\";" > "$filename"
> > diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> > b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> > index d149c04..b9ca1b6 100755
> > --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> > +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> > @@ -9,7 +9,7 @@ UPGRADE_PATH="$(getUpgradePath)"
> >  echo -en "Content-Type: text/html\r\n\r\n"
> >  nav_entry() {
> > >  	script_file="/cgi-bin/$1"
> > > -	if [ "$script_file" == "$REQUEST_URI" ] ; then
> > > +	if [ "$script_file" = "$REQUEST_URI" ] ; then
> > >  		local class_active=' class="active"'
> > >  	fi
> > >  	echo -ne "\t<li${class_active}><a
> href=\"${script_file}\">$2</a></li>\n\t\t"
> > diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> > b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> > index 21bd4e7..821f7a0 100755
> > --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> > +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> > @@ -5,7 +5,7 @@
> >  . /lib/functions/fff/evalhoodinfo
> >
> >  # prepare
> > -if [ "$REQUEST_METHOD" == "POST" ] ; then
> > +if [ "$REQUEST_METHOD" = "POST" ] ; then
> > >  	if [ "$POST_resethood" != "" ] ; then
> > >  		# reset hood
> > >  		rm "$hoodfilecopy" 2> /dev/null
> > diff --git
> > a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> > b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> > index d3287bf..fc3055a 100755
> > --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> > +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> > @@ -2,10 +2,10 @@
> >
> >  <%
> >  # write
> > -if [ "$REQUEST_METHOD" == "POST" ] ; then
> > +if [ "$REQUEST_METHOD" = "POST" ] ; then
> > >  	#check for special characters in password
> > >  	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
> > > -	if [ "$POST_pass1" == "" ] ; then
> > > +	if [ -z "$POST_pass1" ] ; then
> > >  		MSG='<span class="red">Das Passwort darf nicht leer
> sein!</span>'
> >      elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then
> > >  		MSG='<span class="red">Passwort enth&auml;lt
> ung&uuml;ltige Zeichen!</span>'
> > @@ -46,7 +46,7 @@ fi
> >  <%in /www/ssl/cgi-bin/footer %>
> >  <%
> >  #force instant password change
> > -if [ "$restart_uhttpd" == "1" ] ; then
> > +if [ "$restart_uhttpd" -eq 1 ] ; then
> Für den Fall, dass $restart_uhttpd leer ist, würde es nicht korrekt
> sein:
> --- %< ---
> # if [[ "" -eq 1 ]]; then echo true; else echo false; fi
> -ash: out of range
> false
> --- >% ---
> 
> Dummerweise weiß ich jetzt auch nicht, wie man damit gut umgeht.
> 
> a) Doch einen String-Vergleich machen?
> 
> if [ "X$restart_uhttpd" = "X1" ] ; then
> 
> b) Oder beim -eq bleiben, aber ne Null ran?
> 
> if [ "0$restart_uhttpd" -eq 1 ] ; then
> 
> c) Oder die Fehlermeldung ignorieren??
> 
> Keine Ahnung.. ;)
> 
> Diese Anmerkung gilt natürlich auch für alle folgenden -eq Vergleiche.
> 
> Tim
> 
> >  	/etc/init.d/uhttpd restart 2>/dev/null
> >  fi
> >  %>
> > diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> > b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> > index 5912126..01506fc 100755
> > --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> > +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> > @@ -3,7 +3,7 @@
> >  <%
> >  board_name=$(uci -q get board.model.name)
> >  # write
> > -if [ "$REQUEST_METHOD" == "POST" ] ; then
> > +if [ "$REQUEST_METHOD" = "POST" ] ; then
> > >  	if [ "$POST_change_mode" != "" ] ; then
> > >  		sed -i '/^.*# set via WebUI/d' /etc/network.config
> > >  		echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >>
> > > /etc/network.config
> > @@ -45,7 +45,7 @@ format_state() {
> >  format_port() {
> > >  	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
> > >  	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
> > > -	if [ "$link" == "up" ] ; then
> > > +	if [ "$link" = "up" ] ; then
> > >  		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
> > >  		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
> > >  	else
> > @@ -95,7 +95,7 @@ format_port() {
> > >  				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }'
> /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }'
> /etc/network.$board_name)" ] ; then
> > >  					wanif=$(uci -q get
> network.wan.ifname)
> > >  					link=$(cat
> /sys/class/net/${wanif}/operstate)
> > > -					if [ "$link" == "up" ] ; then
> > > +					if [ "$link" = "up" ] ; then
> > >  						speed="connected"
> > >  					else
> > >  						speed="no link"
> > @@ -166,10 +166,10 @@ format_port() {
> > >  				<th style="width:
> 1em;">Anschluss&nbsp;Modus:</th>
> > >  				<td>
> > >  					<select name="mode">
> > > -						<option value="BATMAN" <%
> [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> > > -						<option value="CLIENT" <% [
> "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> > > +						<option value="BATMAN" <%
> [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> > > +						<option value="CLIENT" <% [
> "$ETHMODE" = "CLIENT" ] && echo
> > > +-n 'selected="selected" ' %>>CLIENT</option>
> > >  						<% if grep -q "ONE_PORT"
> "/etc/network.$board_name" ; then %>
> > > -						<option value="WAN" <% [
> "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" '
> %>>WAN</option>
> > > +						<option value="WAN" <% [
> "$ETHMODE" = "WAN" ] && echo -n
> > > +'selected="selected" ' %>>WAN</option>
> > >  						<% fi %>
> > >  					</select>
> > >  				</td>
> > @@ -207,16 +207,16 @@ format_port() {
> > >  			<tr>
> > >  				<td>
> > >  					<select name="mode0">
> > > -						<option value="BATMAN" <%
> [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> > > -						<option value="CLIENT" <% [
> "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> > > -						<option value="WAN" <% [
> "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" '
> %>>WAN</option>
> > > +						<option value="BATMAN" <%
> [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> > > +						<option value="CLIENT" <% [
> "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> > > +						<option value="WAN" <% [
> "$LAN0MODE" = "WAN" ] && echo -n
> > > +'selected="selected" ' %>>WAN</option>
> > >  					</select>
> > >  				</td>
> > >  				<td>
> > >  					<select name="mode1">
> > > -						<option value="BATMAN" <%
> [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> > > -						<option value="CLIENT" <% [
> "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> > > -						<option value="WAN" <% [
> "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" '
> %>>WAN</option>
> > > +						<option value="BATMAN" <%
> [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> %>>BATMAN</option>
> > > +						<option value="CLIENT" <% [
> "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> %>>CLIENT</option>
> > > +						<option value="WAN" <% [
> "$LAN1MODE" = "WAN" ] && echo -n
> > > +'selected="selected" ' %>>WAN</option>
> > >  					</select>
> > >  				</td>
> > >  				<td><input type="submit"
> name="change_twoport" /></td>
> > @@ -240,7 +240,7 @@ format_port() {
> >  <%in /www/ssl/cgi-bin/footer %>
> >  <%
> >  # write
> > -if [ "$do_reboot" == "1" ] ; then
> > +if [ "$do_reboot" -eq 1 ] ; then
> >  	reboot
> >  fi
> >  %>
> > diff --git
> > a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> > b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> > index eddc4ff..2efdf3e 100755
> > --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> > +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> > @@ -2,7 +2,7 @@
> >
> >  <%
> >  # prepare
> > -if [ "$REQUEST_METHOD" == "POST" ] ; then
> > +if [ "$REQUEST_METHOD" = "POST" ] ; then
> > >  	if [ "$POST_reboot" != "" ] ; then
> > >  		do_reboot=1
> > >  		MSG='<span class="green">Router wird
> neugestartet...</span>'
> > @@ -29,7 +29,7 @@ fi
> >  <%in /www/ssl/cgi-bin/footer %>
> >  <%
> >  # write
> > -if [ "$do_reboot" == "1" ] ; then
> > +if [ "$do_reboot" -eq 1 ] ; then
>  	reboot
> >  fi
> >  %>
> > diff --git
> > a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> > b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> > index cfb3a6b..7dd5eed 100755
> > --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> > +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> > @@ -2,7 +2,7 @@
> >
> >  <%
> >  # write
> > -if [ "$REQUEST_METHOD" == "POST" ] ; then
> > +if [ "$REQUEST_METHOD" = "POST" ] ; then
> > >  	#check for valid hostname as specified in rfc 1123
> > >  	#see http://stackoverflow.com/a/3824105
> > >  	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
> > @@ -24,7 +24,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >
> > >  		# Bitratenbegrenzung
> > >  		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set
> fff.trafficcontrol=fff
> > > -		if [ "$POST_traffic_limit" == "on" ] ; then
> > > +		if [ "$POST_traffic_limit" = "on" ] ; then
> > >  			uci -q set "fff.trafficcontrol.enabled=1"
> > >  			uci -q set "simple-tc.example.enabled=1"
> > >  		else
> > @@ -40,7 +40,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >
> > >  		# Restliche Einstellungen
> > >  		uci -q set "fff.notifyupdate=webui"
> > > -		if [ "$POST_upgrade_notification" == "on" ] ; then
> > > +		if [ "$POST_upgrade_notification" = "on" ] ; then
> > >  			uci -q set "fff.notifyupdate.value=1"
> > >  		else
> > >  			uci -q set "fff.notifyupdate.value=0"
> > @@ -50,7 +50,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >
> > >  		if uci -q get system.poe_passthrough > /dev/null ; then
> > >  			uci -q set "fff.poe_passthrough=fff"
> > > -			if [ "$POST_poe_passthrough" == "on" ] ; then
> > > +			if [ "$POST_poe_passthrough" = "on" ] ; then
> > >  				uci -q set "fff.poe_passthrough.active=1"
> > >  				uci -q set "system.poe_passthrough.value=1"
> > >  			else
> > @@ -70,12 +70,12 @@ fi
> >  <%
> >  # read
> >  chkd='checked="checked" '
> > -if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then #
> > not set=0
> > +if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then #
> > +not set=0
> >  	traffic_checked="$chkd"
> >  else
> > >  	traffic_checked=""
> >  fi
> > -if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not
> > set=1
> > +if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not
> > +set=1
> >  	upgrade_checked=""
> >  else
> > >  	upgrade_checked="$chkd"
> > @@ -122,7 +122,7 @@ fi
> >
> > >  		<%
> > >  		if uci -q get system.poe_passthrough > /dev/null ; then
> > > -			if [ "$(uci -q get 'fff.poe_passthrough.active')" == "1" ]
> ; then # not set=0
> > +			if [ "$(uci -q get 'fff.poe_passthrough.active')" -eq 1 ] ;
> then #
> > +not set=0
> >  				poe_pt_checked="$chkd"
> > >  			else
> > >  				poe_pt_checked=""
> > diff --git
> > a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> > b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> > index af46023..9762edc 100755
> > --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> > +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> > @@ -2,10 +2,10 @@
> >
> >  <%
> >  # prepare
> > -if [ "$REQUEST_METHOD" == "POST" ] ; then
> > +if [ "$REQUEST_METHOD" = "POST" ] ; then
> > >  	if [ "$POST_reset" != "" ] ; then
> > >  		# reset
> > > -		if [ "$FORM_really_reset" == "on" ] ; then
> > > +		if [ "$FORM_really_reset" = "on" ] ; then
> > >  			do_reset=1
> > >  			MSG='<span class="green">Router wird
> zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
> > >  		fi
> > @@ -13,12 +13,12 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> > >  		# upgrade
> > >  		if [ ! -f "$HASERL_firmware_path" ] ; then
> > >  			MSG='<span class="red">Firmware Datei nicht
> gefunden!</span>'
> > > -		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" == "0" ] ;
> then
> > > +		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0 ] ;
> > > +then
> > >  			MSG='<span class="red">Firmware Datei ist
> leer!</span>'
> > >  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ;
> then
> > >  			MSG="<span class=\"red\">Firmware Datei
> ung&uuml;ltig: <tt>${error}</tt></span>"
> > >  		else
> > > -			if [ "$POST_keep_config" == "on" ] ; then
> > > +			if [ "$POST_keep_config" = "on" ] ; then
> > >  				args=""
> > >  			else
> > >  				args="-n"
> > @@ -63,12 +63,12 @@ fi
> >  <%in /www/ssl/cgi-bin/footer %>
> >  <%
> >  # write
> > -if [ "$do_reset" == "1" ] ; then
> > +if [ "$do_reset" -eq 1 ] ; then
> > >  	echo "<pre>"
> > >  	echo y | firstboot
> > >  	reboot
> > >  	echo "</pre>"
> > -elif [ "$do_sysupgrade" == "1" ] ; then
> > +elif [ "$do_sysupgrade" -eq 1 ] ; then
> > >  	echo "<pre>"
> > >  	echo "# sysupgrade $args $HASERL_firmware_path"
> > >  	sysupgrade $args $HASERL_firmware_path
Robert Langhammer July 26, 2018, 12:05 p.m.
Hallo,

ich würde mich da Adrian anschließen und alles als String lassen. Nur $#
als Integer vergleichen, denn da geht es ja tatsächlich um die Anzahl
der Parameter.

Wenn das ok ist mach ich den Patch dann so.

Bei den  [ $do_reboot = "1" ]  etc. wäre es ja eigentlich ein logischer
test. Also "is set" , die 1 hat da keine Bedeutung, das kann auch "ja"
sein. Das würde man dann z.B so machen: 

[ ${do_reboot+x} ] && reboot      Aber das versteht erstmal kaum einer ;-)

Robert


Am 26.07.2018 um 10:49 schrieb mail@adrianschmutzler.de:
> Hallo,
>
> solange es nur um Gleichheit geht, würde ich bei dem String-Vergleich bleiben, weil der nachvollziehbar funktioniert.
>
> Alles andere bietet in meinen Augen keinen echten Vorteil, aber macht das Verständnis des Codes komplexer.
>
> Grüße
>
> Adrian
>
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
>> Of Tim Niemeyer
>> Sent: Mittwoch, 25. Juli 2018 23:18
>> To: Robert Langhammer <rlanghammer@web.de>; franken-
>> dev@freifunk.net
>> Subject: Re: [PATCH v2] Remove double equals.
>>
>> Am Mittwoch, den 25.07.2018, 18:00 +0200 schrieb Robert Langhammer:
>>> == is a bash specific alias for = , and should not be used in
>>> #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts either, where the
>>> shell defaults to /bin/sh.
>>>
>>>> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
>>> ---
>>>
>>> Changes in v2:
>>> - do an integer comparison when the operand is an integer
>>> - use -z to test an empty string
>>>
>>> ---
>>>  .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
>>>  .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
>>>  .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
>>>  .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
>>>  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
>>>  .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
>>>  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26
>>> +++++++++++-----------
>>>  .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
>>>  .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
>>>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
>>>  10 files changed, 40 insertions(+), 40 deletions(-)
>>>
>>> diff --git
>>> a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>> b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>> index 8c80802..89af84c 100644
>>> --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>> +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>> @@ -94,10 +94,10 @@ getGatewayHoodfile() {
>>>  }
>>>
>>>  getKeyserverHoodfile() {
>>>> -	if [ $# == 1 ]; then
>>>> +	if [ $# -eq 1 ]; then
>>>>  		lat=$(uci -q get fff.system.latitude)
>>>>  		long=$(uci -q get fff.system.longitude)
>>>> -	elif [ $# == 3 ]; then
>>>> +	elif [ $# -eq 3 ]; then
>>>>  		lat=$2
>>>>  		long=$3
>>>>  	else
>>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> index 86d83fc..c2c2506 100755
>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> @@ -158,16 +158,16 @@ if [ -s "$hoodfile" ]; then
>>>>  				exit 1
>>>>  			fi
>>>> -			# add 802.11s mesh if type == "802.11s"
>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ]
>> ) || [ "$mesh_type2" == "802.11s" ]; then
>>>> +			# add 802.11s mesh if type = "802.11s"
>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "802.11s" ] )
>> || [
>>>> +"$mesh_type2" = "802.11s" ]; then
>>>>  				if ! wifiAddMesh "$radio" "$mesh_id"; then
>>>>  					echo "Can't add Mesh interface on
>> $radio."
>>>>  					exit 1
>>>>  				fi
>>>>  			fi
>>>> -			# add IBSS mesh if type == "ibss"
>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ] ) ||
>> [ "$mesh_type2" == "ibss" ]; then
>>>> +			# add IBSS mesh if type = "ibss"
>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ] ) || [
>>>> +"$mesh_type2" = "ibss" ]; then
>>>>  				if ! wifiAddAdHocMesh "$radio"
>> "$mesh_essid" "$mesh_bssid"; then
>>>>  					echo "Can't add AdHocMesh interface
>> on $radio."
>>>>  					exit 1
>>> diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>> b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>> index 85930a8..2a1c631 100755
>>> --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>> +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>> @@ -15,7 +15,7 @@ json_select vpn
>>>  while json_select "$Index" > /dev/null
>>>  do
>>>>  	json_get_var protocol protocol
>>>> -	if [ "$protocol" == "fastd" ]; then
>>>> +	if [ "$protocol" = "fastd" ]; then
>>>>  		json_get_var servername name
>>>>  		filename="/etc/fastd/fff/peers/$servername"
>>>>  		echo "#name \"${servername}\";" > "$filename"
>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>> index d149c04..b9ca1b6 100755
>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>> @@ -9,7 +9,7 @@ UPGRADE_PATH="$(getUpgradePath)"
>>>  echo -en "Content-Type: text/html\r\n\r\n"
>>>  nav_entry() {
>>>>  	script_file="/cgi-bin/$1"
>>>> -	if [ "$script_file" == "$REQUEST_URI" ] ; then
>>>> +	if [ "$script_file" = "$REQUEST_URI" ] ; then
>>>>  		local class_active=' class="active"'
>>>>  	fi
>>>>  	echo -ne "\t<li${class_active}><a
>> href=\"${script_file}\">$2</a></li>\n\t\t"
>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>> index 21bd4e7..821f7a0 100755
>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>> @@ -5,7 +5,7 @@
>>>  . /lib/functions/fff/evalhoodinfo
>>>
>>>  # prepare
>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>  	if [ "$POST_resethood" != "" ] ; then
>>>>  		# reset hood
>>>>  		rm "$hoodfilecopy" 2> /dev/null
>>> diff --git
>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>> index d3287bf..fc3055a 100755
>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>> @@ -2,10 +2,10 @@
>>>
>>>  <%
>>>  # write
>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>  	#check for special characters in password
>>>>  	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
>>>> -	if [ "$POST_pass1" == "" ] ; then
>>>> +	if [ -z "$POST_pass1" ] ; then
>>>>  		MSG='<span class="red">Das Passwort darf nicht leer
>> sein!</span>'
>>>      elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then
>>>>  		MSG='<span class="red">Passwort enth&auml;lt
>> ung&uuml;ltige Zeichen!</span>'
>>> @@ -46,7 +46,7 @@ fi
>>>  <%in /www/ssl/cgi-bin/footer %>
>>>  <%
>>>  #force instant password change
>>> -if [ "$restart_uhttpd" == "1" ] ; then
>>> +if [ "$restart_uhttpd" -eq 1 ] ; then
>> Für den Fall, dass $restart_uhttpd leer ist, würde es nicht korrekt
>> sein:
>> --- %< ---
>> # if [[ "" -eq 1 ]]; then echo true; else echo false; fi
>> -ash: out of range
>> false
>> --- >% ---
>>
>> Dummerweise weiß ich jetzt auch nicht, wie man damit gut umgeht.
>>
>> a) Doch einen String-Vergleich machen?
>>
>> if [ "X$restart_uhttpd" = "X1" ] ; then
>>
>> b) Oder beim -eq bleiben, aber ne Null ran?
>>
>> if [ "0$restart_uhttpd" -eq 1 ] ; then
>>
>> c) Oder die Fehlermeldung ignorieren??
>>
>> Keine Ahnung.. ;)
>>
>> Diese Anmerkung gilt natürlich auch für alle folgenden -eq Vergleiche.
>>
>> Tim
>>
>>>  	/etc/init.d/uhttpd restart 2>/dev/null
>>>  fi
>>>  %>
>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>> index 5912126..01506fc 100755
>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>> @@ -3,7 +3,7 @@
>>>  <%
>>>  board_name=$(uci -q get board.model.name)
>>>  # write
>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>  	if [ "$POST_change_mode" != "" ] ; then
>>>>  		sed -i '/^.*# set via WebUI/d' /etc/network.config
>>>>  		echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >>
>>>> /etc/network.config
>>> @@ -45,7 +45,7 @@ format_state() {
>>>  format_port() {
>>>>  	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
>>>>  	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
>>>> -	if [ "$link" == "up" ] ; then
>>>> +	if [ "$link" = "up" ] ; then
>>>>  		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
>>>>  		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
>>>>  	else
>>> @@ -95,7 +95,7 @@ format_port() {
>>>>  				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }'
>> /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }'
>> /etc/network.$board_name)" ] ; then
>>>>  					wanif=$(uci -q get
>> network.wan.ifname)
>>>>  					link=$(cat
>> /sys/class/net/${wanif}/operstate)
>>>> -					if [ "$link" == "up" ] ; then
>>>> +					if [ "$link" = "up" ] ; then
>>>>  						speed="connected"
>>>>  					else
>>>>  						speed="no link"
>>> @@ -166,10 +166,10 @@ format_port() {
>>>>  				<th style="width:
>> 1em;">Anschluss&nbsp;Modus:</th>
>>>>  				<td>
>>>>  					<select name="mode">
>>>> -						<option value="BATMAN" <%
>> [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" '
>> %>>BATMAN</option>
>>>> -						<option value="CLIENT" <% [
>> "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" '
>> %>>CLIENT</option>
>>>> +						<option value="BATMAN" <%
>> [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" '
>> %>>BATMAN</option>
>>>> +						<option value="CLIENT" <% [
>> "$ETHMODE" = "CLIENT" ] && echo
>>>> +-n 'selected="selected" ' %>>CLIENT</option>
>>>>  						<% if grep -q "ONE_PORT"
>> "/etc/network.$board_name" ; then %>
>>>> -						<option value="WAN" <% [
>> "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" '
>> %>>WAN</option>
>>>> +						<option value="WAN" <% [
>> "$ETHMODE" = "WAN" ] && echo -n
>>>> +'selected="selected" ' %>>WAN</option>
>>>>  						<% fi %>
>>>>  					</select>
>>>>  				</td>
>>> @@ -207,16 +207,16 @@ format_port() {
>>>>  			<tr>
>>>>  				<td>
>>>>  					<select name="mode0">
>>>> -						<option value="BATMAN" <%
>> [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" '
>> %>>BATMAN</option>
>>>> -						<option value="CLIENT" <% [
>> "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" '
>> %>>CLIENT</option>
>>>> -						<option value="WAN" <% [
>> "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" '
>> %>>WAN</option>
>>>> +						<option value="BATMAN" <%
>> [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" '
>> %>>BATMAN</option>
>>>> +						<option value="CLIENT" <% [
>> "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" '
>> %>>CLIENT</option>
>>>> +						<option value="WAN" <% [
>> "$LAN0MODE" = "WAN" ] && echo -n
>>>> +'selected="selected" ' %>>WAN</option>
>>>>  					</select>
>>>>  				</td>
>>>>  				<td>
>>>>  					<select name="mode1">
>>>> -						<option value="BATMAN" <%
>> [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" '
>> %>>BATMAN</option>
>>>> -						<option value="CLIENT" <% [
>> "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" '
>> %>>CLIENT</option>
>>>> -						<option value="WAN" <% [
>> "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" '
>> %>>WAN</option>
>>>> +						<option value="BATMAN" <%
>> [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" '
>> %>>BATMAN</option>
>>>> +						<option value="CLIENT" <% [
>> "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" '
>> %>>CLIENT</option>
>>>> +						<option value="WAN" <% [
>> "$LAN1MODE" = "WAN" ] && echo -n
>>>> +'selected="selected" ' %>>WAN</option>
>>>>  					</select>
>>>>  				</td>
>>>>  				<td><input type="submit"
>> name="change_twoport" /></td>
>>> @@ -240,7 +240,7 @@ format_port() {
>>>  <%in /www/ssl/cgi-bin/footer %>
>>>  <%
>>>  # write
>>> -if [ "$do_reboot" == "1" ] ; then
>>> +if [ "$do_reboot" -eq 1 ] ; then
>>>  	reboot
>>>  fi
>>>  %>
>>> diff --git
>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>> index eddc4ff..2efdf3e 100755
>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>> @@ -2,7 +2,7 @@
>>>
>>>  <%
>>>  # prepare
>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>  	if [ "$POST_reboot" != "" ] ; then
>>>>  		do_reboot=1
>>>>  		MSG='<span class="green">Router wird
>> neugestartet...</span>'
>>> @@ -29,7 +29,7 @@ fi
>>>  <%in /www/ssl/cgi-bin/footer %>
>>>  <%
>>>  # write
>>> -if [ "$do_reboot" == "1" ] ; then
>>> +if [ "$do_reboot" -eq 1 ] ; then
>>  	reboot
>>>  fi
>>>  %>
>>> diff --git
>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>> index cfb3a6b..7dd5eed 100755
>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>> @@ -2,7 +2,7 @@
>>>
>>>  <%
>>>  # write
>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>  	#check for valid hostname as specified in rfc 1123
>>>>  	#see http://stackoverflow.com/a/3824105
>>>>  	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
>>> @@ -24,7 +24,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>
>>>>  		# Bitratenbegrenzung
>>>>  		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set
>> fff.trafficcontrol=fff
>>>> -		if [ "$POST_traffic_limit" == "on" ] ; then
>>>> +		if [ "$POST_traffic_limit" = "on" ] ; then
>>>>  			uci -q set "fff.trafficcontrol.enabled=1"
>>>>  			uci -q set "simple-tc.example.enabled=1"
>>>>  		else
>>> @@ -40,7 +40,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>
>>>>  		# Restliche Einstellungen
>>>>  		uci -q set "fff.notifyupdate=webui"
>>>> -		if [ "$POST_upgrade_notification" == "on" ] ; then
>>>> +		if [ "$POST_upgrade_notification" = "on" ] ; then
>>>>  			uci -q set "fff.notifyupdate.value=1"
>>>>  		else
>>>>  			uci -q set "fff.notifyupdate.value=0"
>>> @@ -50,7 +50,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>
>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
>>>>  			uci -q set "fff.poe_passthrough=fff"
>>>> -			if [ "$POST_poe_passthrough" == "on" ] ; then
>>>> +			if [ "$POST_poe_passthrough" = "on" ] ; then
>>>>  				uci -q set "fff.poe_passthrough.active=1"
>>>>  				uci -q set "system.poe_passthrough.value=1"
>>>>  			else
>>> @@ -70,12 +70,12 @@ fi
>>>  <%
>>>  # read
>>>  chkd='checked="checked" '
>>> -if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then #
>>> not set=0
>>> +if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then #
>>> +not set=0
>>>  	traffic_checked="$chkd"
>>>  else
>>>>  	traffic_checked=""
>>>  fi
>>> -if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not
>>> set=1
>>> +if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not
>>> +set=1
>>>  	upgrade_checked=""
>>>  else
>>>>  	upgrade_checked="$chkd"
>>> @@ -122,7 +122,7 @@ fi
>>>
>>>>  		<%
>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
>>>> -			if [ "$(uci -q get 'fff.poe_passthrough.active')" == "1" ]
>> ; then # not set=0
>>> +			if [ "$(uci -q get 'fff.poe_passthrough.active')" -eq 1 ] ;
>> then #
>>> +not set=0
>>>  				poe_pt_checked="$chkd"
>>>>  			else
>>>>  				poe_pt_checked=""
>>> diff --git
>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>> index af46023..9762edc 100755
>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>> @@ -2,10 +2,10 @@
>>>
>>>  <%
>>>  # prepare
>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>  	if [ "$POST_reset" != "" ] ; then
>>>>  		# reset
>>>> -		if [ "$FORM_really_reset" == "on" ] ; then
>>>> +		if [ "$FORM_really_reset" = "on" ] ; then
>>>>  			do_reset=1
>>>>  			MSG='<span class="green">Router wird
>> zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
>>>>  		fi
>>> @@ -13,12 +13,12 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>  		# upgrade
>>>>  		if [ ! -f "$HASERL_firmware_path" ] ; then
>>>>  			MSG='<span class="red">Firmware Datei nicht
>> gefunden!</span>'
>>>> -		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" == "0" ] ;
>> then
>>>> +		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0 ] ;
>>>> +then
>>>>  			MSG='<span class="red">Firmware Datei ist
>> leer!</span>'
>>>>  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ;
>> then
>>>>  			MSG="<span class=\"red\">Firmware Datei
>> ung&uuml;ltig: <tt>${error}</tt></span>"
>>>>  		else
>>>> -			if [ "$POST_keep_config" == "on" ] ; then
>>>> +			if [ "$POST_keep_config" = "on" ] ; then
>>>>  				args=""
>>>>  			else
>>>>  				args="-n"
>>> @@ -63,12 +63,12 @@ fi
>>>  <%in /www/ssl/cgi-bin/footer %>
>>>  <%
>>>  # write
>>> -if [ "$do_reset" == "1" ] ; then
>>> +if [ "$do_reset" -eq 1 ] ; then
>>>>  	echo "<pre>"
>>>>  	echo y | firstboot
>>>>  	reboot
>>>>  	echo "</pre>"
>>> -elif [ "$do_sysupgrade" == "1" ] ; then
>>> +elif [ "$do_sysupgrade" -eq 1 ] ; then
>>>>  	echo "<pre>"
>>>>  	echo "# sysupgrade $args $HASERL_firmware_path"
>>>>  	sysupgrade $args $HASERL_firmware_path
Adrian Schmutzler July 26, 2018, 1:01 p.m.
Hallo,

ich würde wirklich alles, was equal ist, als string vergleichen.

[ "$do_reboot" = "1" ]

[ "$#" = "1" ]

Das sieht zwar nicht schön aus, aber es funktioniert sicher und ohne Nebenwirkungen (keine Randfälle, keine Missverständnisse).

Die anderen Aufräumarbeiten finde ich gut.

Grüße

Adrian


> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
> robert
> Sent: Donnerstag, 26. Juli 2018 14:06
> To: franken-dev@freifunk.net
> Subject: Re: [PATCH v2] Remove double equals.
> 
> Hallo,
> 
> ich würde mich da Adrian anschließen und alles als String lassen. Nur $#
> als Integer vergleichen, denn da geht es ja tatsächlich um die Anzahl
> der Parameter.
> 
> Wenn das ok ist mach ich den Patch dann so.
> 
> Bei den  [ $do_reboot = "1" ]  etc. wäre es ja eigentlich ein logischer
> test. Also "is set" , die 1 hat da keine Bedeutung, das kann auch "ja"
> sein. Das würde man dann z.B so machen:
> 
> [ ${do_reboot+x} ] && reboot      Aber das versteht erstmal kaum einer ;-)
> 
> Robert
> 
> 
> Am 26.07.2018 um 10:49 schrieb mail@adrianschmutzler.de:
> > Hallo,
> >
> > solange es nur um Gleichheit geht, würde ich bei dem String-Vergleich
> bleiben, weil der nachvollziehbar funktioniert.
> >
> > Alles andere bietet in meinen Augen keinen echten Vorteil, aber macht das
> Verständnis des Codes komplexer.
> >
> > Grüße
> >
> > Adrian
> >
> >> -----Original Message-----
> >> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> >> Of Tim Niemeyer
> >> Sent: Mittwoch, 25. Juli 2018 23:18
> >> To: Robert Langhammer <rlanghammer@web.de>; franken-
> >> dev@freifunk.net
> >> Subject: Re: [PATCH v2] Remove double equals.
> >>
> >> Am Mittwoch, den 25.07.2018, 18:00 +0200 schrieb Robert Langhammer:
> >>> == is a bash specific alias for = , and should not be used in
> >>> #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts either, where the
> >>> shell defaults to /bin/sh.
> >>>
> >>>> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> >>> ---
> >>>
> >>> Changes in v2:
> >>> - do an integer comparison when the operand is an integer
> >>> - use -z to test an empty string
> >>>
> >>> ---
> >>>  .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
> >>>  .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
> >>>  .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
> >>>  .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
> >>>  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
> >>>  .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
> >>>  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26
> >>> +++++++++++-----------
> >>>  .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
> >>>  .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
> >>>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
> >>>  10 files changed, 40 insertions(+), 40 deletions(-)
> >>>
> >>> diff --git
> >>> a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>> b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>> index 8c80802..89af84c 100644
> >>> --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>> +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>> @@ -94,10 +94,10 @@ getGatewayHoodfile() {
> >>>  }
> >>>
> >>>  getKeyserverHoodfile() {
> >>>> -	if [ $# == 1 ]; then
> >>>> +	if [ $# -eq 1 ]; then
> >>>>  		lat=$(uci -q get fff.system.latitude)
> >>>>  		long=$(uci -q get fff.system.longitude)
> >>>> -	elif [ $# == 3 ]; then
> >>>> +	elif [ $# -eq 3 ]; then
> >>>>  		lat=$2
> >>>>  		long=$3
> >>>>  	else
> >>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>> index 86d83fc..c2c2506 100755
> >>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>> @@ -158,16 +158,16 @@ if [ -s "$hoodfile" ]; then
> >>>>  				exit 1
> >>>>  			fi
> >>>> -			# add 802.11s mesh if type == "802.11s"
> >>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ]
> >> ) || [ "$mesh_type2" == "802.11s" ]; then
> >>>> +			# add 802.11s mesh if type = "802.11s"
> >>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "802.11s" ] )
> >> || [
> >>>> +"$mesh_type2" = "802.11s" ]; then
> >>>>  				if ! wifiAddMesh "$radio" "$mesh_id"; then
> >>>>  					echo "Can't add Mesh interface on
> >> $radio."
> >>>>  					exit 1
> >>>>  				fi
> >>>>  			fi
> >>>> -			# add IBSS mesh if type == "ibss"
> >>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ] ) ||
> >> [ "$mesh_type2" == "ibss" ]; then
> >>>> +			# add IBSS mesh if type = "ibss"
> >>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ] ) || [
> >>>> +"$mesh_type2" = "ibss" ]; then
> >>>>  				if ! wifiAddAdHocMesh "$radio"
> >> "$mesh_essid" "$mesh_bssid"; then
> >>>>  					echo "Can't add AdHocMesh interface
> >> on $radio."
> >>>>  					exit 1
> >>> diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>> b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>> index 85930a8..2a1c631 100755
> >>> --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>> +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>> @@ -15,7 +15,7 @@ json_select vpn
> >>>  while json_select "$Index" > /dev/null
> >>>  do
> >>>>  	json_get_var protocol protocol
> >>>> -	if [ "$protocol" == "fastd" ]; then
> >>>> +	if [ "$protocol" = "fastd" ]; then
> >>>>  		json_get_var servername name
> >>>>  		filename="/etc/fastd/fff/peers/$servername"
> >>>>  		echo "#name \"${servername}\";" > "$filename"
> >>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>> index d149c04..b9ca1b6 100755
> >>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>> @@ -9,7 +9,7 @@ UPGRADE_PATH="$(getUpgradePath)"
> >>>  echo -en "Content-Type: text/html\r\n\r\n"
> >>>  nav_entry() {
> >>>>  	script_file="/cgi-bin/$1"
> >>>> -	if [ "$script_file" == "$REQUEST_URI" ] ; then
> >>>> +	if [ "$script_file" = "$REQUEST_URI" ] ; then
> >>>>  		local class_active=' class="active"'
> >>>>  	fi
> >>>>  	echo -ne "\t<li${class_active}><a
> >> href=\"${script_file}\">$2</a></li>\n\t\t"
> >>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>> index 21bd4e7..821f7a0 100755
> >>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>> @@ -5,7 +5,7 @@
> >>>  . /lib/functions/fff/evalhoodinfo
> >>>
> >>>  # prepare
> >>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>  	if [ "$POST_resethood" != "" ] ; then
> >>>>  		# reset hood
> >>>>  		rm "$hoodfilecopy" 2> /dev/null
> >>> diff --git
> >>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>> index d3287bf..fc3055a 100755
> >>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>> @@ -2,10 +2,10 @@
> >>>
> >>>  <%
> >>>  # write
> >>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>  	#check for special characters in password
> >>>>  	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
> >>>> -	if [ "$POST_pass1" == "" ] ; then
> >>>> +	if [ -z "$POST_pass1" ] ; then
> >>>>  		MSG='<span class="red">Das Passwort darf nicht leer
> >> sein!</span>'
> >>>      elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then
> >>>>  		MSG='<span class="red">Passwort enth&auml;lt
> >> ung&uuml;ltige Zeichen!</span>'
> >>> @@ -46,7 +46,7 @@ fi
> >>>  <%in /www/ssl/cgi-bin/footer %>
> >>>  <%
> >>>  #force instant password change
> >>> -if [ "$restart_uhttpd" == "1" ] ; then
> >>> +if [ "$restart_uhttpd" -eq 1 ] ; then
> >> Für den Fall, dass $restart_uhttpd leer ist, würde es nicht korrekt
> >> sein:
> >> --- %< ---
> >> # if [[ "" -eq 1 ]]; then echo true; else echo false; fi
> >> -ash: out of range
> >> false
> >> --- >% ---
> >>
> >> Dummerweise weiß ich jetzt auch nicht, wie man damit gut umgeht.
> >>
> >> a) Doch einen String-Vergleich machen?
> >>
> >> if [ "X$restart_uhttpd" = "X1" ] ; then
> >>
> >> b) Oder beim -eq bleiben, aber ne Null ran?
> >>
> >> if [ "0$restart_uhttpd" -eq 1 ] ; then
> >>
> >> c) Oder die Fehlermeldung ignorieren??
> >>
> >> Keine Ahnung.. ;)
> >>
> >> Diese Anmerkung gilt natürlich auch für alle folgenden -eq Vergleiche.
> >>
> >> Tim
> >>
> >>>  	/etc/init.d/uhttpd restart 2>/dev/null
> >>>  fi
> >>>  %>
> >>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>> index 5912126..01506fc 100755
> >>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>> @@ -3,7 +3,7 @@
> >>>  <%
> >>>  board_name=$(uci -q get board.model.name)
> >>>  # write
> >>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>  	if [ "$POST_change_mode" != "" ] ; then
> >>>>  		sed -i '/^.*# set via WebUI/d' /etc/network.config
> >>>>  		echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >>
> >>>> /etc/network.config
> >>> @@ -45,7 +45,7 @@ format_state() {
> >>>  format_port() {
> >>>>  	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
> >>>>  	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
> >>>> -	if [ "$link" == "up" ] ; then
> >>>> +	if [ "$link" = "up" ] ; then
> >>>>  		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
> >>>>  		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
> >>>>  	else
> >>> @@ -95,7 +95,7 @@ format_port() {
> >>>>  				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }'
> >> /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }'
> >> /etc/network.$board_name)" ] ; then
> >>>>  					wanif=$(uci -q get
> >> network.wan.ifname)
> >>>>  					link=$(cat
> >> /sys/class/net/${wanif}/operstate)
> >>>> -					if [ "$link" == "up" ] ; then
> >>>> +					if [ "$link" = "up" ] ; then
> >>>>  						speed="connected"
> >>>>  					else
> >>>>  						speed="no link"
> >>> @@ -166,10 +166,10 @@ format_port() {
> >>>>  				<th style="width:
> >> 1em;">Anschluss&nbsp;Modus:</th>
> >>>>  				<td>
> >>>>  					<select name="mode">
> >>>> -						<option value="BATMAN" <%
> >> [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" '
> >> %>>BATMAN</option>
> >>>> -						<option value="CLIENT" <% [
> >> "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" '
> >> %>>CLIENT</option>
> >>>> +						<option value="BATMAN" <%
> >> [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" '
> >> %>>BATMAN</option>
> >>>> +						<option value="CLIENT" <% [
> >> "$ETHMODE" = "CLIENT" ] && echo
> >>>> +-n 'selected="selected" ' %>>CLIENT</option>
> >>>>  						<% if grep -q "ONE_PORT"
> >> "/etc/network.$board_name" ; then %>
> >>>> -						<option value="WAN" <% [
> >> "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" '
> >> %>>WAN</option>
> >>>> +						<option value="WAN" <% [
> >> "$ETHMODE" = "WAN" ] && echo -n
> >>>> +'selected="selected" ' %>>WAN</option>
> >>>>  						<% fi %>
> >>>>  					</select>
> >>>>  				</td>
> >>> @@ -207,16 +207,16 @@ format_port() {
> >>>>  			<tr>
> >>>>  				<td>
> >>>>  					<select name="mode0">
> >>>> -						<option value="BATMAN" <%
> >> [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> >> %>>BATMAN</option>
> >>>> -						<option value="CLIENT" <% [
> >> "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> >> %>>CLIENT</option>
> >>>> -						<option value="WAN" <% [
> >> "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" '
> >> %>>WAN</option>
> >>>> +						<option value="BATMAN" <%
> >> [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> >> %>>BATMAN</option>
> >>>> +						<option value="CLIENT" <% [
> >> "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> >> %>>CLIENT</option>
> >>>> +						<option value="WAN" <% [
> >> "$LAN0MODE" = "WAN" ] && echo -n
> >>>> +'selected="selected" ' %>>WAN</option>
> >>>>  					</select>
> >>>>  				</td>
> >>>>  				<td>
> >>>>  					<select name="mode1">
> >>>> -						<option value="BATMAN" <%
> >> [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> >> %>>BATMAN</option>
> >>>> -						<option value="CLIENT" <% [
> >> "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> >> %>>CLIENT</option>
> >>>> -						<option value="WAN" <% [
> >> "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" '
> >> %>>WAN</option>
> >>>> +						<option value="BATMAN" <%
> >> [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> >> %>>BATMAN</option>
> >>>> +						<option value="CLIENT" <% [
> >> "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> >> %>>CLIENT</option>
> >>>> +						<option value="WAN" <% [
> >> "$LAN1MODE" = "WAN" ] && echo -n
> >>>> +'selected="selected" ' %>>WAN</option>
> >>>>  					</select>
> >>>>  				</td>
> >>>>  				<td><input type="submit"
> >> name="change_twoport" /></td>
> >>> @@ -240,7 +240,7 @@ format_port() {
> >>>  <%in /www/ssl/cgi-bin/footer %>
> >>>  <%
> >>>  # write
> >>> -if [ "$do_reboot" == "1" ] ; then
> >>> +if [ "$do_reboot" -eq 1 ] ; then
> >>>  	reboot
> >>>  fi
> >>>  %>
> >>> diff --git
> >>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>> index eddc4ff..2efdf3e 100755
> >>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>> @@ -2,7 +2,7 @@
> >>>
> >>>  <%
> >>>  # prepare
> >>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>  	if [ "$POST_reboot" != "" ] ; then
> >>>>  		do_reboot=1
> >>>>  		MSG='<span class="green">Router wird
> >> neugestartet...</span>'
> >>> @@ -29,7 +29,7 @@ fi
> >>>  <%in /www/ssl/cgi-bin/footer %>
> >>>  <%
> >>>  # write
> >>> -if [ "$do_reboot" == "1" ] ; then
> >>> +if [ "$do_reboot" -eq 1 ] ; then
> >>  	reboot
> >>>  fi
> >>>  %>
> >>> diff --git
> >>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>> index cfb3a6b..7dd5eed 100755
> >>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>> @@ -2,7 +2,7 @@
> >>>
> >>>  <%
> >>>  # write
> >>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>  	#check for valid hostname as specified in rfc 1123
> >>>>  	#see http://stackoverflow.com/a/3824105
> >>>>  	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
> >>> @@ -24,7 +24,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>
> >>>>  		# Bitratenbegrenzung
> >>>>  		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set
> >> fff.trafficcontrol=fff
> >>>> -		if [ "$POST_traffic_limit" == "on" ] ; then
> >>>> +		if [ "$POST_traffic_limit" = "on" ] ; then
> >>>>  			uci -q set "fff.trafficcontrol.enabled=1"
> >>>>  			uci -q set "simple-tc.example.enabled=1"
> >>>>  		else
> >>> @@ -40,7 +40,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>
> >>>>  		# Restliche Einstellungen
> >>>>  		uci -q set "fff.notifyupdate=webui"
> >>>> -		if [ "$POST_upgrade_notification" == "on" ] ; then
> >>>> +		if [ "$POST_upgrade_notification" = "on" ] ; then
> >>>>  			uci -q set "fff.notifyupdate.value=1"
> >>>>  		else
> >>>>  			uci -q set "fff.notifyupdate.value=0"
> >>> @@ -50,7 +50,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>
> >>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
> >>>>  			uci -q set "fff.poe_passthrough=fff"
> >>>> -			if [ "$POST_poe_passthrough" == "on" ] ; then
> >>>> +			if [ "$POST_poe_passthrough" = "on" ] ; then
> >>>>  				uci -q set "fff.poe_passthrough.active=1"
> >>>>  				uci -q set "system.poe_passthrough.value=1"
> >>>>  			else
> >>> @@ -70,12 +70,12 @@ fi
> >>>  <%
> >>>  # read
> >>>  chkd='checked="checked" '
> >>> -if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then #
> >>> not set=0
> >>> +if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then #
> >>> +not set=0
> >>>  	traffic_checked="$chkd"
> >>>  else
> >>>>  	traffic_checked=""
> >>>  fi
> >>> -if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not
> >>> set=1
> >>> +if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not
> >>> +set=1
> >>>  	upgrade_checked=""
> >>>  else
> >>>>  	upgrade_checked="$chkd"
> >>> @@ -122,7 +122,7 @@ fi
> >>>
> >>>>  		<%
> >>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
> >>>> -			if [ "$(uci -q get 'fff.poe_passthrough.active')" == "1" ]
> >> ; then # not set=0
> >>> +			if [ "$(uci -q get 'fff.poe_passthrough.active')" -eq 1 ] ;
> >> then #
> >>> +not set=0
> >>>  				poe_pt_checked="$chkd"
> >>>>  			else
> >>>>  				poe_pt_checked=""
> >>> diff --git
> >>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>> index af46023..9762edc 100755
> >>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>> @@ -2,10 +2,10 @@
> >>>
> >>>  <%
> >>>  # prepare
> >>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>  	if [ "$POST_reset" != "" ] ; then
> >>>>  		# reset
> >>>> -		if [ "$FORM_really_reset" == "on" ] ; then
> >>>> +		if [ "$FORM_really_reset" = "on" ] ; then
> >>>>  			do_reset=1
> >>>>  			MSG='<span class="green">Router wird
> >> zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
> >>>>  		fi
> >>> @@ -13,12 +13,12 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>  		# upgrade
> >>>>  		if [ ! -f "$HASERL_firmware_path" ] ; then
> >>>>  			MSG='<span class="red">Firmware Datei nicht
> >> gefunden!</span>'
> >>>> -		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" == "0" ] ;
> >> then
> >>>> +		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0 ] ;
> >>>> +then
> >>>>  			MSG='<span class="red">Firmware Datei ist
> >> leer!</span>'
> >>>>  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ;
> >> then
> >>>>  			MSG="<span class=\"red\">Firmware Datei
> >> ung&uuml;ltig: <tt>${error}</tt></span>"
> >>>>  		else
> >>>> -			if [ "$POST_keep_config" == "on" ] ; then
> >>>> +			if [ "$POST_keep_config" = "on" ] ; then
> >>>>  				args=""
> >>>>  			else
> >>>>  				args="-n"
> >>> @@ -63,12 +63,12 @@ fi
> >>>  <%in /www/ssl/cgi-bin/footer %>
> >>>  <%
> >>>  # write
> >>> -if [ "$do_reset" == "1" ] ; then
> >>> +if [ "$do_reset" -eq 1 ] ; then
> >>>>  	echo "<pre>"
> >>>>  	echo y | firstboot
> >>>>  	reboot
> >>>>  	echo "</pre>"
> >>> -elif [ "$do_sysupgrade" == "1" ] ; then
> >>> +elif [ "$do_sysupgrade" -eq 1 ] ; then
> >>>>  	echo "<pre>"
> >>>>  	echo "# sysupgrade $args $HASERL_firmware_path"
> >>>>  	sysupgrade $args $HASERL_firmware_path
>
Robert Langhammer July 26, 2018, 1:55 p.m.
Hi Adrian,


Am 26.07.2018 um 15:01 schrieb Adrian Schmutzler:
> Hallo,
>
> ich würde wirklich alles, was equal ist, als string vergleichen.
>
> [ "$do_reboot" = "1" ]
>
> [ "$#" = "1" ]
Das entspräche dann genau Patch v1! Soo hässlich finde ich das gar
nicht. [ $# -eq 1 ] sieht auch nicht besser aus.
Ich kann gut damit leben, wichtig ist nur, dass das bash-Zeugs weg ist.

Wie ist das? Muss ich den nochmal schicken?
Robert
>
> Das sieht zwar nicht schön aus, aber es funktioniert sicher und ohne Nebenwirkungen (keine Randfälle, keine Missverständnisse).
>
> Die anderen Aufräumarbeiten finde ich gut.
>
> Grüße
>
> Adrian
>
>
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
>> robert
>> Sent: Donnerstag, 26. Juli 2018 14:06
>> To: franken-dev@freifunk.net
>> Subject: Re: [PATCH v2] Remove double equals.
>>
>> Hallo,
>>
>> ich würde mich da Adrian anschließen und alles als String lassen. Nur $#
>> als Integer vergleichen, denn da geht es ja tatsächlich um die Anzahl
>> der Parameter.
>>
>> Wenn das ok ist mach ich den Patch dann so.
>>
>> Bei den  [ $do_reboot = "1" ]  etc. wäre es ja eigentlich ein logischer
>> test. Also "is set" , die 1 hat da keine Bedeutung, das kann auch "ja"
>> sein. Das würde man dann z.B so machen:
>>
>> [ ${do_reboot+x} ] && reboot      Aber das versteht erstmal kaum einer ;-)
>>
>> Robert
>>
>>
>> Am 26.07.2018 um 10:49 schrieb mail@adrianschmutzler.de:
>>> Hallo,
>>>
>>> solange es nur um Gleichheit geht, würde ich bei dem String-Vergleich
>> bleiben, weil der nachvollziehbar funktioniert.
>>> Alles andere bietet in meinen Augen keinen echten Vorteil, aber macht das
>> Verständnis des Codes komplexer.
>>> Grüße
>>>
>>> Adrian
>>>
>>>> -----Original Message-----
>>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
>>>> Of Tim Niemeyer
>>>> Sent: Mittwoch, 25. Juli 2018 23:18
>>>> To: Robert Langhammer <rlanghammer@web.de>; franken-
>>>> dev@freifunk.net
>>>> Subject: Re: [PATCH v2] Remove double equals.
>>>>
>>>> Am Mittwoch, den 25.07.2018, 18:00 +0200 schrieb Robert Langhammer:
>>>>> == is a bash specific alias for = , and should not be used in
>>>>> #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts either, where the
>>>>> shell defaults to /bin/sh.
>>>>>
>>>>>> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
>>>>> ---
>>>>>
>>>>> Changes in v2:
>>>>> - do an integer comparison when the operand is an integer
>>>>> - use -z to test an empty string
>>>>>
>>>>> ---
>>>>>  .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
>>>>>  .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
>>>>>  .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
>>>>>  .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26
>>>>> +++++++++++-----------
>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
>>>>>  .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
>>>>>  10 files changed, 40 insertions(+), 40 deletions(-)
>>>>>
>>>>> diff --git
>>>>> a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>>>> b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>>>> index 8c80802..89af84c 100644
>>>>> --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>>>> +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>>>> @@ -94,10 +94,10 @@ getGatewayHoodfile() {
>>>>>  }
>>>>>
>>>>>  getKeyserverHoodfile() {
>>>>>> -	if [ $# == 1 ]; then
>>>>>> +	if [ $# -eq 1 ]; then
>>>>>>  		lat=$(uci -q get fff.system.latitude)
>>>>>>  		long=$(uci -q get fff.system.longitude)
>>>>>> -	elif [ $# == 3 ]; then
>>>>>> +	elif [ $# -eq 3 ]; then
>>>>>>  		lat=$2
>>>>>>  		long=$3
>>>>>>  	else
>>>>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>> index 86d83fc..c2c2506 100755
>>>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>> @@ -158,16 +158,16 @@ if [ -s "$hoodfile" ]; then
>>>>>>  				exit 1
>>>>>>  			fi
>>>>>> -			# add 802.11s mesh if type == "802.11s"
>>>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ]
>>>> ) || [ "$mesh_type2" == "802.11s" ]; then
>>>>>> +			# add 802.11s mesh if type = "802.11s"
>>>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "802.11s" ] )
>>>> || [
>>>>>> +"$mesh_type2" = "802.11s" ]; then
>>>>>>  				if ! wifiAddMesh "$radio" "$mesh_id"; then
>>>>>>  					echo "Can't add Mesh interface on
>>>> $radio."
>>>>>>  					exit 1
>>>>>>  				fi
>>>>>>  			fi
>>>>>> -			# add IBSS mesh if type == "ibss"
>>>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ] ) ||
>>>> [ "$mesh_type2" == "ibss" ]; then
>>>>>> +			# add IBSS mesh if type = "ibss"
>>>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ] ) || [
>>>>>> +"$mesh_type2" = "ibss" ]; then
>>>>>>  				if ! wifiAddAdHocMesh "$radio"
>>>> "$mesh_essid" "$mesh_bssid"; then
>>>>>>  					echo "Can't add AdHocMesh interface
>>>> on $radio."
>>>>>>  					exit 1
>>>>> diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>>>> b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>>>> index 85930a8..2a1c631 100755
>>>>> --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>>>> +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>>>> @@ -15,7 +15,7 @@ json_select vpn
>>>>>  while json_select "$Index" > /dev/null
>>>>>  do
>>>>>>  	json_get_var protocol protocol
>>>>>> -	if [ "$protocol" == "fastd" ]; then
>>>>>> +	if [ "$protocol" = "fastd" ]; then
>>>>>>  		json_get_var servername name
>>>>>>  		filename="/etc/fastd/fff/peers/$servername"
>>>>>>  		echo "#name \"${servername}\";" > "$filename"
>>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>>>> index d149c04..b9ca1b6 100755
>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>>>> @@ -9,7 +9,7 @@ UPGRADE_PATH="$(getUpgradePath)"
>>>>>  echo -en "Content-Type: text/html\r\n\r\n"
>>>>>  nav_entry() {
>>>>>>  	script_file="/cgi-bin/$1"
>>>>>> -	if [ "$script_file" == "$REQUEST_URI" ] ; then
>>>>>> +	if [ "$script_file" = "$REQUEST_URI" ] ; then
>>>>>>  		local class_active=' class="active"'
>>>>>>  	fi
>>>>>>  	echo -ne "\t<li${class_active}><a
>>>> href=\"${script_file}\">$2</a></li>\n\t\t"
>>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>>>> index 21bd4e7..821f7a0 100755
>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>>>> @@ -5,7 +5,7 @@
>>>>>  . /lib/functions/fff/evalhoodinfo
>>>>>
>>>>>  # prepare
>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>  	if [ "$POST_resethood" != "" ] ; then
>>>>>>  		# reset hood
>>>>>>  		rm "$hoodfilecopy" 2> /dev/null
>>>>> diff --git
>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>>>> index d3287bf..fc3055a 100755
>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>>>> @@ -2,10 +2,10 @@
>>>>>
>>>>>  <%
>>>>>  # write
>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>  	#check for special characters in password
>>>>>>  	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
>>>>>> -	if [ "$POST_pass1" == "" ] ; then
>>>>>> +	if [ -z "$POST_pass1" ] ; then
>>>>>>  		MSG='<span class="red">Das Passwort darf nicht leer
>>>> sein!</span>'
>>>>>      elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then
>>>>>>  		MSG='<span class="red">Passwort enth&auml;lt
>>>> ung&uuml;ltige Zeichen!</span>'
>>>>> @@ -46,7 +46,7 @@ fi
>>>>>  <%in /www/ssl/cgi-bin/footer %>
>>>>>  <%
>>>>>  #force instant password change
>>>>> -if [ "$restart_uhttpd" == "1" ] ; then
>>>>> +if [ "$restart_uhttpd" -eq 1 ] ; then
>>>> Für den Fall, dass $restart_uhttpd leer ist, würde es nicht korrekt
>>>> sein:
>>>> --- %< ---
>>>> # if [[ "" -eq 1 ]]; then echo true; else echo false; fi
>>>> -ash: out of range
>>>> false
>>>> --- >% ---
>>>>
>>>> Dummerweise weiß ich jetzt auch nicht, wie man damit gut umgeht.
>>>>
>>>> a) Doch einen String-Vergleich machen?
>>>>
>>>> if [ "X$restart_uhttpd" = "X1" ] ; then
>>>>
>>>> b) Oder beim -eq bleiben, aber ne Null ran?
>>>>
>>>> if [ "0$restart_uhttpd" -eq 1 ] ; then
>>>>
>>>> c) Oder die Fehlermeldung ignorieren??
>>>>
>>>> Keine Ahnung.. ;)
>>>>
>>>> Diese Anmerkung gilt natürlich auch für alle folgenden -eq Vergleiche.
>>>>
>>>> Tim
>>>>
>>>>>  	/etc/init.d/uhttpd restart 2>/dev/null
>>>>>  fi
>>>>>  %>
>>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>>>> index 5912126..01506fc 100755
>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>>>> @@ -3,7 +3,7 @@
>>>>>  <%
>>>>>  board_name=$(uci -q get board.model.name)
>>>>>  # write
>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>  	if [ "$POST_change_mode" != "" ] ; then
>>>>>>  		sed -i '/^.*# set via WebUI/d' /etc/network.config
>>>>>>  		echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >>
>>>>>> /etc/network.config
>>>>> @@ -45,7 +45,7 @@ format_state() {
>>>>>  format_port() {
>>>>>>  	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
>>>>>>  	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
>>>>>> -	if [ "$link" == "up" ] ; then
>>>>>> +	if [ "$link" = "up" ] ; then
>>>>>>  		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
>>>>>>  		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
>>>>>>  	else
>>>>> @@ -95,7 +95,7 @@ format_port() {
>>>>>>  				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }'
>>>> /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }'
>>>> /etc/network.$board_name)" ] ; then
>>>>>>  					wanif=$(uci -q get
>>>> network.wan.ifname)
>>>>>>  					link=$(cat
>>>> /sys/class/net/${wanif}/operstate)
>>>>>> -					if [ "$link" == "up" ] ; then
>>>>>> +					if [ "$link" = "up" ] ; then
>>>>>>  						speed="connected"
>>>>>>  					else
>>>>>>  						speed="no link"
>>>>> @@ -166,10 +166,10 @@ format_port() {
>>>>>>  				<th style="width:
>>>> 1em;">Anschluss&nbsp;Modus:</th>
>>>>>>  				<td>
>>>>>>  					<select name="mode">
>>>>>> -						<option value="BATMAN" <%
>>>> [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" '
>>>> %>>BATMAN</option>
>>>>>> -						<option value="CLIENT" <% [
>>>> "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" '
>>>> %>>CLIENT</option>
>>>>>> +						<option value="BATMAN" <%
>>>> [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" '
>>>> %>>BATMAN</option>
>>>>>> +						<option value="CLIENT" <% [
>>>> "$ETHMODE" = "CLIENT" ] && echo
>>>>>> +-n 'selected="selected" ' %>>CLIENT</option>
>>>>>>  						<% if grep -q "ONE_PORT"
>>>> "/etc/network.$board_name" ; then %>
>>>>>> -						<option value="WAN" <% [
>>>> "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" '
>>>> %>>WAN</option>
>>>>>> +						<option value="WAN" <% [
>>>> "$ETHMODE" = "WAN" ] && echo -n
>>>>>> +'selected="selected" ' %>>WAN</option>
>>>>>>  						<% fi %>
>>>>>>  					</select>
>>>>>>  				</td>
>>>>> @@ -207,16 +207,16 @@ format_port() {
>>>>>>  			<tr>
>>>>>>  				<td>
>>>>>>  					<select name="mode0">
>>>>>> -						<option value="BATMAN" <%
>>>> [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" '
>>>> %>>BATMAN</option>
>>>>>> -						<option value="CLIENT" <% [
>>>> "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" '
>>>> %>>CLIENT</option>
>>>>>> -						<option value="WAN" <% [
>>>> "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" '
>>>> %>>WAN</option>
>>>>>> +						<option value="BATMAN" <%
>>>> [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" '
>>>> %>>BATMAN</option>
>>>>>> +						<option value="CLIENT" <% [
>>>> "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" '
>>>> %>>CLIENT</option>
>>>>>> +						<option value="WAN" <% [
>>>> "$LAN0MODE" = "WAN" ] && echo -n
>>>>>> +'selected="selected" ' %>>WAN</option>
>>>>>>  					</select>
>>>>>>  				</td>
>>>>>>  				<td>
>>>>>>  					<select name="mode1">
>>>>>> -						<option value="BATMAN" <%
>>>> [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" '
>>>> %>>BATMAN</option>
>>>>>> -						<option value="CLIENT" <% [
>>>> "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" '
>>>> %>>CLIENT</option>
>>>>>> -						<option value="WAN" <% [
>>>> "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" '
>>>> %>>WAN</option>
>>>>>> +						<option value="BATMAN" <%
>>>> [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" '
>>>> %>>BATMAN</option>
>>>>>> +						<option value="CLIENT" <% [
>>>> "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" '
>>>> %>>CLIENT</option>
>>>>>> +						<option value="WAN" <% [
>>>> "$LAN1MODE" = "WAN" ] && echo -n
>>>>>> +'selected="selected" ' %>>WAN</option>
>>>>>>  					</select>
>>>>>>  				</td>
>>>>>>  				<td><input type="submit"
>>>> name="change_twoport" /></td>
>>>>> @@ -240,7 +240,7 @@ format_port() {
>>>>>  <%in /www/ssl/cgi-bin/footer %>
>>>>>  <%
>>>>>  # write
>>>>> -if [ "$do_reboot" == "1" ] ; then
>>>>> +if [ "$do_reboot" -eq 1 ] ; then
>>>>>  	reboot
>>>>>  fi
>>>>>  %>
>>>>> diff --git
>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>>>> index eddc4ff..2efdf3e 100755
>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>>>> @@ -2,7 +2,7 @@
>>>>>
>>>>>  <%
>>>>>  # prepare
>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>  	if [ "$POST_reboot" != "" ] ; then
>>>>>>  		do_reboot=1
>>>>>>  		MSG='<span class="green">Router wird
>>>> neugestartet...</span>'
>>>>> @@ -29,7 +29,7 @@ fi
>>>>>  <%in /www/ssl/cgi-bin/footer %>
>>>>>  <%
>>>>>  # write
>>>>> -if [ "$do_reboot" == "1" ] ; then
>>>>> +if [ "$do_reboot" -eq 1 ] ; then
>>>>  	reboot
>>>>>  fi
>>>>>  %>
>>>>> diff --git
>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>>>> index cfb3a6b..7dd5eed 100755
>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>>>> @@ -2,7 +2,7 @@
>>>>>
>>>>>  <%
>>>>>  # write
>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>  	#check for valid hostname as specified in rfc 1123
>>>>>>  	#see http://stackoverflow.com/a/3824105
>>>>>>  	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
>>>>> @@ -24,7 +24,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>
>>>>>>  		# Bitratenbegrenzung
>>>>>>  		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set
>>>> fff.trafficcontrol=fff
>>>>>> -		if [ "$POST_traffic_limit" == "on" ] ; then
>>>>>> +		if [ "$POST_traffic_limit" = "on" ] ; then
>>>>>>  			uci -q set "fff.trafficcontrol.enabled=1"
>>>>>>  			uci -q set "simple-tc.example.enabled=1"
>>>>>>  		else
>>>>> @@ -40,7 +40,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>
>>>>>>  		# Restliche Einstellungen
>>>>>>  		uci -q set "fff.notifyupdate=webui"
>>>>>> -		if [ "$POST_upgrade_notification" == "on" ] ; then
>>>>>> +		if [ "$POST_upgrade_notification" = "on" ] ; then
>>>>>>  			uci -q set "fff.notifyupdate.value=1"
>>>>>>  		else
>>>>>>  			uci -q set "fff.notifyupdate.value=0"
>>>>> @@ -50,7 +50,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>
>>>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
>>>>>>  			uci -q set "fff.poe_passthrough=fff"
>>>>>> -			if [ "$POST_poe_passthrough" == "on" ] ; then
>>>>>> +			if [ "$POST_poe_passthrough" = "on" ] ; then
>>>>>>  				uci -q set "fff.poe_passthrough.active=1"
>>>>>>  				uci -q set "system.poe_passthrough.value=1"
>>>>>>  			else
>>>>> @@ -70,12 +70,12 @@ fi
>>>>>  <%
>>>>>  # read
>>>>>  chkd='checked="checked" '
>>>>> -if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then #
>>>>> not set=0
>>>>> +if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then #
>>>>> +not set=0
>>>>>  	traffic_checked="$chkd"
>>>>>  else
>>>>>>  	traffic_checked=""
>>>>>  fi
>>>>> -if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not
>>>>> set=1
>>>>> +if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not
>>>>> +set=1
>>>>>  	upgrade_checked=""
>>>>>  else
>>>>>>  	upgrade_checked="$chkd"
>>>>> @@ -122,7 +122,7 @@ fi
>>>>>
>>>>>>  		<%
>>>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
>>>>>> -			if [ "$(uci -q get 'fff.poe_passthrough.active')" == "1" ]
>>>> ; then # not set=0
>>>>> +			if [ "$(uci -q get 'fff.poe_passthrough.active')" -eq 1 ] ;
>>>> then #
>>>>> +not set=0
>>>>>  				poe_pt_checked="$chkd"
>>>>>>  			else
>>>>>>  				poe_pt_checked=""
>>>>> diff --git
>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>>>> index af46023..9762edc 100755
>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>>>> @@ -2,10 +2,10 @@
>>>>>
>>>>>  <%
>>>>>  # prepare
>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>  	if [ "$POST_reset" != "" ] ; then
>>>>>>  		# reset
>>>>>> -		if [ "$FORM_really_reset" == "on" ] ; then
>>>>>> +		if [ "$FORM_really_reset" = "on" ] ; then
>>>>>>  			do_reset=1
>>>>>>  			MSG='<span class="green">Router wird
>>>> zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
>>>>>>  		fi
>>>>> @@ -13,12 +13,12 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>  		# upgrade
>>>>>>  		if [ ! -f "$HASERL_firmware_path" ] ; then
>>>>>>  			MSG='<span class="red">Firmware Datei nicht
>>>> gefunden!</span>'
>>>>>> -		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" == "0" ] ;
>>>> then
>>>>>> +		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0 ] ;
>>>>>> +then
>>>>>>  			MSG='<span class="red">Firmware Datei ist
>>>> leer!</span>'
>>>>>>  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ;
>>>> then
>>>>>>  			MSG="<span class=\"red\">Firmware Datei
>>>> ung&uuml;ltig: <tt>${error}</tt></span>"
>>>>>>  		else
>>>>>> -			if [ "$POST_keep_config" == "on" ] ; then
>>>>>> +			if [ "$POST_keep_config" = "on" ] ; then
>>>>>>  				args=""
>>>>>>  			else
>>>>>>  				args="-n"
>>>>> @@ -63,12 +63,12 @@ fi
>>>>>  <%in /www/ssl/cgi-bin/footer %>
>>>>>  <%
>>>>>  # write
>>>>> -if [ "$do_reset" == "1" ] ; then
>>>>> +if [ "$do_reset" -eq 1 ] ; then
>>>>>>  	echo "<pre>"
>>>>>>  	echo y | firstboot
>>>>>>  	reboot
>>>>>>  	echo "</pre>"
>>>>> -elif [ "$do_sysupgrade" == "1" ] ; then
>>>>> +elif [ "$do_sysupgrade" -eq 1 ] ; then
>>>>>>  	echo "<pre>"
>>>>>>  	echo "# sysupgrade $args $HASERL_firmware_path"
>>>>>>  	sysupgrade $args $HASERL_firmware_path
>
Adrian Schmutzler July 26, 2018, 2:06 p.m.
Hallo robert,

beim v1 würden die Anführungszeichen für die $# fehlen (gleich die ersten beiden Änderungen).

Außerdem ist da im Patchwork die Commit-Message kaputt, der hat irgendwie die Leerzeilen ignoriert. (Beim v2 hats dann gepasst).

Also vll. besser doch nochmal als v3 mit den genannten Änderungen, wenn du möchtest.

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
> robert
> Sent: Donnerstag, 26. Juli 2018 15:55
> To: franken-dev@freifunk.net
> Subject: Re: [PATCH v2] Remove double equals.
> 
> Hi Adrian,
> 
> 
> Am 26.07.2018 um 15:01 schrieb Adrian Schmutzler:
> > Hallo,
> >
> > ich würde wirklich alles, was equal ist, als string vergleichen.
> >
> > [ "$do_reboot" = "1" ]
> >
> > [ "$#" = "1" ]
> Das entspräche dann genau Patch v1! Soo hässlich finde ich das gar
> nicht. [ $# -eq 1 ] sieht auch nicht besser aus.
> Ich kann gut damit leben, wichtig ist nur, dass das bash-Zeugs weg ist.
> 
> Wie ist das? Muss ich den nochmal schicken?
> Robert
> >
> > Das sieht zwar nicht schön aus, aber es funktioniert sicher und ohne
> Nebenwirkungen (keine Randfälle, keine Missverständnisse).
> >
> > Die anderen Aufräumarbeiten finde ich gut.
> >
> > Grüße
> >
> > Adrian
> >
> >
> >> -----Original Message-----
> >> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of
> >> robert
> >> Sent: Donnerstag, 26. Juli 2018 14:06
> >> To: franken-dev@freifunk.net
> >> Subject: Re: [PATCH v2] Remove double equals.
> >>
> >> Hallo,
> >>
> >> ich würde mich da Adrian anschließen und alles als String lassen. Nur $#
> >> als Integer vergleichen, denn da geht es ja tatsächlich um die Anzahl
> >> der Parameter.
> >>
> >> Wenn das ok ist mach ich den Patch dann so.
> >>
> >> Bei den  [ $do_reboot = "1" ]  etc. wäre es ja eigentlich ein logischer
> >> test. Also "is set" , die 1 hat da keine Bedeutung, das kann auch "ja"
> >> sein. Das würde man dann z.B so machen:
> >>
> >> [ ${do_reboot+x} ] && reboot      Aber das versteht erstmal kaum einer ;-)
> >>
> >> Robert
> >>
> >>
> >> Am 26.07.2018 um 10:49 schrieb mail@adrianschmutzler.de:
> >>> Hallo,
> >>>
> >>> solange es nur um Gleichheit geht, würde ich bei dem String-Vergleich
> >> bleiben, weil der nachvollziehbar funktioniert.
> >>> Alles andere bietet in meinen Augen keinen echten Vorteil, aber macht das
> >> Verständnis des Codes komplexer.
> >>> Grüße
> >>>
> >>> Adrian
> >>>
> >>>> -----Original Message-----
> >>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> >>>> Of Tim Niemeyer
> >>>> Sent: Mittwoch, 25. Juli 2018 23:18
> >>>> To: Robert Langhammer <rlanghammer@web.de>; franken-
> >>>> dev@freifunk.net
> >>>> Subject: Re: [PATCH v2] Remove double equals.
> >>>>
> >>>> Am Mittwoch, den 25.07.2018, 18:00 +0200 schrieb Robert Langhammer:
> >>>>> == is a bash specific alias for = , and should not be used in
> >>>>> #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts either, where the
> >>>>> shell defaults to /bin/sh.
> >>>>>
> >>>>>> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> >>>>> ---
> >>>>>
> >>>>> Changes in v2:
> >>>>> - do an integer comparison when the operand is an integer
> >>>>> - use -z to test an empty string
> >>>>>
> >>>>> ---
> >>>>>  .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
> >>>>>  .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
> >>>>>  .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
> >>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
> >>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
> >>>>>  .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
> >>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26
> >>>>> +++++++++++-----------
> >>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
> >>>>>  .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
> >>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
> >>>>>  10 files changed, 40 insertions(+), 40 deletions(-)
> >>>>>
> >>>>> diff --git
> >>>>> a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>>>> b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>>>> index 8c80802..89af84c 100644
> >>>>> --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>>>> +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>>>> @@ -94,10 +94,10 @@ getGatewayHoodfile() {
> >>>>>  }
> >>>>>
> >>>>>  getKeyserverHoodfile() {
> >>>>>> -	if [ $# == 1 ]; then
> >>>>>> +	if [ $# -eq 1 ]; then
> >>>>>>  		lat=$(uci -q get fff.system.latitude)
> >>>>>>  		long=$(uci -q get fff.system.longitude)
> >>>>>> -	elif [ $# == 3 ]; then
> >>>>>> +	elif [ $# -eq 3 ]; then
> >>>>>>  		lat=$2
> >>>>>>  		long=$3
> >>>>>>  	else
> >>>>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>>>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>>>> index 86d83fc..c2c2506 100755
> >>>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>>>> @@ -158,16 +158,16 @@ if [ -s "$hoodfile" ]; then
> >>>>>>  				exit 1
> >>>>>>  			fi
> >>>>>> -			# add 802.11s mesh if type == "802.11s"
> >>>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" ==
> "802.11s" ]
> >>>> ) || [ "$mesh_type2" == "802.11s" ]; then
> >>>>>> +			# add 802.11s mesh if type = "802.11s"
> >>>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" =
> "802.11s" ] )
> >>>> || [
> >>>>>> +"$mesh_type2" = "802.11s" ]; then
> >>>>>>  				if ! wifiAddMesh "$radio" "$mesh_id";
> then
> >>>>>>  					echo "Can't add Mesh interface
> on
> >>>> $radio."
> >>>>>>  					exit 1
> >>>>>>  				fi
> >>>>>>  			fi
> >>>>>> -			# add IBSS mesh if type == "ibss"
> >>>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss"
> ] ) ||
> >>>> [ "$mesh_type2" == "ibss" ]; then
> >>>>>> +			# add IBSS mesh if type = "ibss"
> >>>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ]
> ) || [
> >>>>>> +"$mesh_type2" = "ibss" ]; then
> >>>>>>  				if ! wifiAddAdHocMesh "$radio"
> >>>> "$mesh_essid" "$mesh_bssid"; then
> >>>>>>  					echo "Can't add AdHocMesh
> interface
> >>>> on $radio."
> >>>>>>  					exit 1
> >>>>> diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>>>> b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>>>> index 85930a8..2a1c631 100755
> >>>>> --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>>>> +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>>>> @@ -15,7 +15,7 @@ json_select vpn
> >>>>>  while json_select "$Index" > /dev/null
> >>>>>  do
> >>>>>>  	json_get_var protocol protocol
> >>>>>> -	if [ "$protocol" == "fastd" ]; then
> >>>>>> +	if [ "$protocol" = "fastd" ]; then
> >>>>>>  		json_get_var servername name
> >>>>>>  		filename="/etc/fastd/fff/peers/$servername"
> >>>>>>  		echo "#name \"${servername}\";" > "$filename"
> >>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>>>> index d149c04..b9ca1b6 100755
> >>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>>>> @@ -9,7 +9,7 @@ UPGRADE_PATH="$(getUpgradePath)"
> >>>>>  echo -en "Content-Type: text/html\r\n\r\n"
> >>>>>  nav_entry() {
> >>>>>>  	script_file="/cgi-bin/$1"
> >>>>>> -	if [ "$script_file" == "$REQUEST_URI" ] ; then
> >>>>>> +	if [ "$script_file" = "$REQUEST_URI" ] ; then
> >>>>>>  		local class_active=' class="active"'
> >>>>>>  	fi
> >>>>>>  	echo -ne "\t<li${class_active}><a
> >>>> href=\"${script_file}\">$2</a></li>\n\t\t"
> >>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>>>> index 21bd4e7..821f7a0 100755
> >>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>>>> @@ -5,7 +5,7 @@
> >>>>>  . /lib/functions/fff/evalhoodinfo
> >>>>>
> >>>>>  # prepare
> >>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>  	if [ "$POST_resethood" != "" ] ; then
> >>>>>>  		# reset hood
> >>>>>>  		rm "$hoodfilecopy" 2> /dev/null
> >>>>> diff --git
> >>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>>>> index d3287bf..fc3055a 100755
> >>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>>>> @@ -2,10 +2,10 @@
> >>>>>
> >>>>>  <%
> >>>>>  # write
> >>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>  	#check for special characters in password
> >>>>>>  	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
> >>>>>> -	if [ "$POST_pass1" == "" ] ; then
> >>>>>> +	if [ -z "$POST_pass1" ] ; then
> >>>>>>  		MSG='<span class="red">Das Passwort darf nicht leer
> >>>> sein!</span>'
> >>>>>      elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then
> >>>>>>  		MSG='<span class="red">Passwort enth&auml;lt
> >>>> ung&uuml;ltige Zeichen!</span>'
> >>>>> @@ -46,7 +46,7 @@ fi
> >>>>>  <%in /www/ssl/cgi-bin/footer %>
> >>>>>  <%
> >>>>>  #force instant password change
> >>>>> -if [ "$restart_uhttpd" == "1" ] ; then
> >>>>> +if [ "$restart_uhttpd" -eq 1 ] ; then
> >>>> Für den Fall, dass $restart_uhttpd leer ist, würde es nicht korrekt
> >>>> sein:
> >>>> --- %< ---
> >>>> # if [[ "" -eq 1 ]]; then echo true; else echo false; fi
> >>>> -ash: out of range
> >>>> false
> >>>> --- >% ---
> >>>>
> >>>> Dummerweise weiß ich jetzt auch nicht, wie man damit gut umgeht.
> >>>>
> >>>> a) Doch einen String-Vergleich machen?
> >>>>
> >>>> if [ "X$restart_uhttpd" = "X1" ] ; then
> >>>>
> >>>> b) Oder beim -eq bleiben, aber ne Null ran?
> >>>>
> >>>> if [ "0$restart_uhttpd" -eq 1 ] ; then
> >>>>
> >>>> c) Oder die Fehlermeldung ignorieren??
> >>>>
> >>>> Keine Ahnung.. ;)
> >>>>
> >>>> Diese Anmerkung gilt natürlich auch für alle folgenden -eq Vergleiche.
> >>>>
> >>>> Tim
> >>>>
> >>>>>  	/etc/init.d/uhttpd restart 2>/dev/null
> >>>>>  fi
> >>>>>  %>
> >>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>>>> index 5912126..01506fc 100755
> >>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>>>> @@ -3,7 +3,7 @@
> >>>>>  <%
> >>>>>  board_name=$(uci -q get board.model.name)
> >>>>>  # write
> >>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>  	if [ "$POST_change_mode" != "" ] ; then
> >>>>>>  		sed -i '/^.*# set via WebUI/d' /etc/network.config
> >>>>>>  		echo "ETHMODE=\"${POST_mode}\" # set via WebUI"
> >>
> >>>>>> /etc/network.config
> >>>>> @@ -45,7 +45,7 @@ format_state() {
> >>>>>  format_port() {
> >>>>>>  	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
> >>>>>>  	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
> >>>>>> -	if [ "$link" == "up" ] ; then
> >>>>>> +	if [ "$link" = "up" ] ; then
> >>>>>>  		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
> >>>>>>  		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
> >>>>>>  	else
> >>>>> @@ -95,7 +95,7 @@ format_port() {
> >>>>>>  				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }'
> >>>> /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }'
> >>>> /etc/network.$board_name)" ] ; then
> >>>>>>  					wanif=$(uci -q get
> >>>> network.wan.ifname)
> >>>>>>  					link=$(cat
> >>>> /sys/class/net/${wanif}/operstate)
> >>>>>> -					if [ "$link" == "up" ] ; then
> >>>>>> +					if [ "$link" = "up" ] ; then
> >>>>>>  						speed="connected"
> >>>>>>  					else
> >>>>>>  						speed="no link"
> >>>>> @@ -166,10 +166,10 @@ format_port() {
> >>>>>>  				<th style="width:
> >>>> 1em;">Anschluss&nbsp;Modus:</th>
> >>>>>>  				<td>
> >>>>>>  					<select name="mode">
> >>>>>> -						<option value="BATMAN"
> <%
> >>>> [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" '
> >>>> %>>BATMAN</option>
> >>>>>> -						<option value="CLIENT"
> <% [
> >>>> "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" '
> >>>> %>>CLIENT</option>
> >>>>>> +						<option value="BATMAN"
> <%
> >>>> [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" '
> >>>> %>>BATMAN</option>
> >>>>>> +						<option value="CLIENT"
> <% [
> >>>> "$ETHMODE" = "CLIENT" ] && echo
> >>>>>> +-n 'selected="selected" ' %>>CLIENT</option>
> >>>>>>  						<% if grep -q "ONE_PORT"
> >>>> "/etc/network.$board_name" ; then %>
> >>>>>> -						<option value="WAN" <%
> [
> >>>> "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" '
> >>>> %>>WAN</option>
> >>>>>> +						<option value="WAN" <%
> [
> >>>> "$ETHMODE" = "WAN" ] && echo -n
> >>>>>> +'selected="selected" ' %>>WAN</option>
> >>>>>>  						<% fi %>
> >>>>>>  					</select>
> >>>>>>  				</td>
> >>>>> @@ -207,16 +207,16 @@ format_port() {
> >>>>>>  			<tr>
> >>>>>>  				<td>
> >>>>>>  					<select name="mode0">
> >>>>>> -						<option value="BATMAN"
> <%
> >>>> [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> >>>> %>>BATMAN</option>
> >>>>>> -						<option value="CLIENT"
> <% [
> >>>> "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> >>>> %>>CLIENT</option>
> >>>>>> -						<option value="WAN" <%
> [
> >>>> "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" '
> >>>> %>>WAN</option>
> >>>>>> +						<option value="BATMAN"
> <%
> >>>> [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> >>>> %>>BATMAN</option>
> >>>>>> +						<option value="CLIENT"
> <% [
> >>>> "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> >>>> %>>CLIENT</option>
> >>>>>> +						<option value="WAN" <%
> [
> >>>> "$LAN0MODE" = "WAN" ] && echo -n
> >>>>>> +'selected="selected" ' %>>WAN</option>
> >>>>>>  					</select>
> >>>>>>  				</td>
> >>>>>>  				<td>
> >>>>>>  					<select name="mode1">
> >>>>>> -						<option value="BATMAN"
> <%
> >>>> [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> >>>> %>>BATMAN</option>
> >>>>>> -						<option value="CLIENT"
> <% [
> >>>> "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> >>>> %>>CLIENT</option>
> >>>>>> -						<option value="WAN" <%
> [
> >>>> "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" '
> >>>> %>>WAN</option>
> >>>>>> +						<option value="BATMAN"
> <%
> >>>> [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> >>>> %>>BATMAN</option>
> >>>>>> +						<option value="CLIENT"
> <% [
> >>>> "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> >>>> %>>CLIENT</option>
> >>>>>> +						<option value="WAN" <%
> [
> >>>> "$LAN1MODE" = "WAN" ] && echo -n
> >>>>>> +'selected="selected" ' %>>WAN</option>
> >>>>>>  					</select>
> >>>>>>  				</td>
> >>>>>>  				<td><input type="submit"
> >>>> name="change_twoport" /></td>
> >>>>> @@ -240,7 +240,7 @@ format_port() {
> >>>>>  <%in /www/ssl/cgi-bin/footer %>
> >>>>>  <%
> >>>>>  # write
> >>>>> -if [ "$do_reboot" == "1" ] ; then
> >>>>> +if [ "$do_reboot" -eq 1 ] ; then
> >>>>>  	reboot
> >>>>>  fi
> >>>>>  %>
> >>>>> diff --git
> >>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>>>> index eddc4ff..2efdf3e 100755
> >>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>>>> @@ -2,7 +2,7 @@
> >>>>>
> >>>>>  <%
> >>>>>  # prepare
> >>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>  	if [ "$POST_reboot" != "" ] ; then
> >>>>>>  		do_reboot=1
> >>>>>>  		MSG='<span class="green">Router wird
> >>>> neugestartet...</span>'
> >>>>> @@ -29,7 +29,7 @@ fi
> >>>>>  <%in /www/ssl/cgi-bin/footer %>
> >>>>>  <%
> >>>>>  # write
> >>>>> -if [ "$do_reboot" == "1" ] ; then
> >>>>> +if [ "$do_reboot" -eq 1 ] ; then
> >>>>  	reboot
> >>>>>  fi
> >>>>>  %>
> >>>>> diff --git
> >>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>>>> index cfb3a6b..7dd5eed 100755
> >>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>>>> @@ -2,7 +2,7 @@
> >>>>>
> >>>>>  <%
> >>>>>  # write
> >>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>  	#check for valid hostname as specified in rfc 1123
> >>>>>>  	#see http://stackoverflow.com/a/3824105
> >>>>>>  	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
> >>>>> @@ -24,7 +24,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>
> >>>>>>  		# Bitratenbegrenzung
> >>>>>>  		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set
> >>>> fff.trafficcontrol=fff
> >>>>>> -		if [ "$POST_traffic_limit" == "on" ] ; then
> >>>>>> +		if [ "$POST_traffic_limit" = "on" ] ; then
> >>>>>>  			uci -q set "fff.trafficcontrol.enabled=1"
> >>>>>>  			uci -q set "simple-tc.example.enabled=1"
> >>>>>>  		else
> >>>>> @@ -40,7 +40,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>
> >>>>>>  		# Restliche Einstellungen
> >>>>>>  		uci -q set "fff.notifyupdate=webui"
> >>>>>> -		if [ "$POST_upgrade_notification" == "on" ] ; then
> >>>>>> +		if [ "$POST_upgrade_notification" = "on" ] ; then
> >>>>>>  			uci -q set "fff.notifyupdate.value=1"
> >>>>>>  		else
> >>>>>>  			uci -q set "fff.notifyupdate.value=0"
> >>>>> @@ -50,7 +50,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>
> >>>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
> >>>>>>  			uci -q set "fff.poe_passthrough=fff"
> >>>>>> -			if [ "$POST_poe_passthrough" == "on" ] ; then
> >>>>>> +			if [ "$POST_poe_passthrough" = "on" ] ; then
> >>>>>>  				uci -q set "fff.poe_passthrough.active=1"
> >>>>>>  				uci -q set
> "system.poe_passthrough.value=1"
> >>>>>>  			else
> >>>>> @@ -70,12 +70,12 @@ fi
> >>>>>  <%
> >>>>>  # read
> >>>>>  chkd='checked="checked" '
> >>>>> -if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then #
> >>>>> not set=0
> >>>>> +if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then #
> >>>>> +not set=0
> >>>>>  	traffic_checked="$chkd"
> >>>>>  else
> >>>>>>  	traffic_checked=""
> >>>>>  fi
> >>>>> -if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not
> >>>>> set=1
> >>>>> +if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not
> >>>>> +set=1
> >>>>>  	upgrade_checked=""
> >>>>>  else
> >>>>>>  	upgrade_checked="$chkd"
> >>>>> @@ -122,7 +122,7 @@ fi
> >>>>>
> >>>>>>  		<%
> >>>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
> >>>>>> -			if [ "$(uci -q get 'fff.poe_passthrough.active')" ==
> "1" ]
> >>>> ; then # not set=0
> >>>>> +			if [ "$(uci -q get 'fff.poe_passthrough.active')" -
> eq 1 ] ;
> >>>> then #
> >>>>> +not set=0
> >>>>>  				poe_pt_checked="$chkd"
> >>>>>>  			else
> >>>>>>  				poe_pt_checked=""
> >>>>> diff --git
> >>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>>>> index af46023..9762edc 100755
> >>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>>>> @@ -2,10 +2,10 @@
> >>>>>
> >>>>>  <%
> >>>>>  # prepare
> >>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>  	if [ "$POST_reset" != "" ] ; then
> >>>>>>  		# reset
> >>>>>> -		if [ "$FORM_really_reset" == "on" ] ; then
> >>>>>> +		if [ "$FORM_really_reset" = "on" ] ; then
> >>>>>>  			do_reset=1
> >>>>>>  			MSG='<span class="green">Router wird
> >>>> zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
> >>>>>>  		fi
> >>>>> @@ -13,12 +13,12 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>  		# upgrade
> >>>>>>  		if [ ! -f "$HASERL_firmware_path" ] ; then
> >>>>>>  			MSG='<span class="red">Firmware Datei nicht
> >>>> gefunden!</span>'
> >>>>>> -		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" ==
> "0" ] ;
> >>>> then
> >>>>>> +		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0
> ] ;
> >>>>>> +then
> >>>>>>  			MSG='<span class="red">Firmware Datei ist
> >>>> leer!</span>'
> >>>>>>  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ;
> >>>> then
> >>>>>>  			MSG="<span class=\"red\">Firmware Datei
> >>>> ung&uuml;ltig: <tt>${error}</tt></span>"
> >>>>>>  		else
> >>>>>> -			if [ "$POST_keep_config" == "on" ] ; then
> >>>>>> +			if [ "$POST_keep_config" = "on" ] ; then
> >>>>>>  				args=""
> >>>>>>  			else
> >>>>>>  				args="-n"
> >>>>> @@ -63,12 +63,12 @@ fi
> >>>>>  <%in /www/ssl/cgi-bin/footer %>
> >>>>>  <%
> >>>>>  # write
> >>>>> -if [ "$do_reset" == "1" ] ; then
> >>>>> +if [ "$do_reset" -eq 1 ] ; then
> >>>>>>  	echo "<pre>"
> >>>>>>  	echo y | firstboot
> >>>>>>  	reboot
> >>>>>>  	echo "</pre>"
> >>>>> -elif [ "$do_sysupgrade" == "1" ] ; then
> >>>>> +elif [ "$do_sysupgrade" -eq 1 ] ; then
> >>>>>>  	echo "<pre>"
> >>>>>>  	echo "# sysupgrade $args $HASERL_firmware_path"
> >>>>>>  	sysupgrade $args $HASERL_firmware_path
> >
>
Robert Langhammer July 26, 2018, 2:12 p.m.
Am 26.07.2018 um 16:06 schrieb Adrian Schmutzler:
> Hallo robert,
>
> beim v1 würden die Anführungszeichen für die $# fehlen (gleich die ersten beiden Änderungen).
Die fehlen, weil man die nicht braucht. Falls $# wordsplitting oder
globbing machen wuerde ist wirklich was kaputt.
>
> Außerdem ist da im Patchwork die Commit-Message kaputt, der hat irgendwie die Leerzeilen ignoriert. (Beim v2 hats dann gepasst).
>
> Also vll. besser doch nochmal als v3 mit den genannten Änderungen, wenn du möchtest.
>
> Grüße
>
> Adrian
>
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
>> robert
>> Sent: Donnerstag, 26. Juli 2018 15:55
>> To: franken-dev@freifunk.net
>> Subject: Re: [PATCH v2] Remove double equals.
>>
>> Hi Adrian,
>>
>>
>> Am 26.07.2018 um 15:01 schrieb Adrian Schmutzler:
>>> Hallo,
>>>
>>> ich würde wirklich alles, was equal ist, als string vergleichen.
>>>
>>> [ "$do_reboot" = "1" ]
>>>
>>> [ "$#" = "1" ]
>> Das entspräche dann genau Patch v1! Soo hässlich finde ich das gar
>> nicht. [ $# -eq 1 ] sieht auch nicht besser aus.
>> Ich kann gut damit leben, wichtig ist nur, dass das bash-Zeugs weg ist.
>>
>> Wie ist das? Muss ich den nochmal schicken?
>> Robert
>>> Das sieht zwar nicht schön aus, aber es funktioniert sicher und ohne
>> Nebenwirkungen (keine Randfälle, keine Missverständnisse).
>>> Die anderen Aufräumarbeiten finde ich gut.
>>>
>>> Grüße
>>>
>>> Adrian
>>>
>>>
>>>> -----Original Message-----
>>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
>> Of
>>>> robert
>>>> Sent: Donnerstag, 26. Juli 2018 14:06
>>>> To: franken-dev@freifunk.net
>>>> Subject: Re: [PATCH v2] Remove double equals.
>>>>
>>>> Hallo,
>>>>
>>>> ich würde mich da Adrian anschließen und alles als String lassen. Nur $#
>>>> als Integer vergleichen, denn da geht es ja tatsächlich um die Anzahl
>>>> der Parameter.
>>>>
>>>> Wenn das ok ist mach ich den Patch dann so.
>>>>
>>>> Bei den  [ $do_reboot = "1" ]  etc. wäre es ja eigentlich ein logischer
>>>> test. Also "is set" , die 1 hat da keine Bedeutung, das kann auch "ja"
>>>> sein. Das würde man dann z.B so machen:
>>>>
>>>> [ ${do_reboot+x} ] && reboot      Aber das versteht erstmal kaum einer ;-)
>>>>
>>>> Robert
>>>>
>>>>
>>>> Am 26.07.2018 um 10:49 schrieb mail@adrianschmutzler.de:
>>>>> Hallo,
>>>>>
>>>>> solange es nur um Gleichheit geht, würde ich bei dem String-Vergleich
>>>> bleiben, weil der nachvollziehbar funktioniert.
>>>>> Alles andere bietet in meinen Augen keinen echten Vorteil, aber macht das
>>>> Verständnis des Codes komplexer.
>>>>> Grüße
>>>>>
>>>>> Adrian
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
>>>>>> Of Tim Niemeyer
>>>>>> Sent: Mittwoch, 25. Juli 2018 23:18
>>>>>> To: Robert Langhammer <rlanghammer@web.de>; franken-
>>>>>> dev@freifunk.net
>>>>>> Subject: Re: [PATCH v2] Remove double equals.
>>>>>>
>>>>>> Am Mittwoch, den 25.07.2018, 18:00 +0200 schrieb Robert Langhammer:
>>>>>>> == is a bash specific alias for = , and should not be used in
>>>>>>> #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts either, where the
>>>>>>> shell defaults to /bin/sh.
>>>>>>>
>>>>>>>> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
>>>>>>> ---
>>>>>>>
>>>>>>> Changes in v2:
>>>>>>> - do an integer comparison when the operand is an integer
>>>>>>> - use -z to test an empty string
>>>>>>>
>>>>>>> ---
>>>>>>>  .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
>>>>>>>  .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
>>>>>>>  .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
>>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
>>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
>>>>>>>  .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
>>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26
>>>>>>> +++++++++++-----------
>>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
>>>>>>>  .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
>>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
>>>>>>>  10 files changed, 40 insertions(+), 40 deletions(-)
>>>>>>>
>>>>>>> diff --git
>>>>>>> a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>>>>>> b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>>>>>> index 8c80802..89af84c 100644
>>>>>>> --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>>>>>> +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
>>>>>>> @@ -94,10 +94,10 @@ getGatewayHoodfile() {
>>>>>>>  }
>>>>>>>
>>>>>>>  getKeyserverHoodfile() {
>>>>>>>> -	if [ $# == 1 ]; then
>>>>>>>> +	if [ $# -eq 1 ]; then
>>>>>>>>  		lat=$(uci -q get fff.system.latitude)
>>>>>>>>  		long=$(uci -q get fff.system.longitude)
>>>>>>>> -	elif [ $# == 3 ]; then
>>>>>>>> +	elif [ $# -eq 3 ]; then
>>>>>>>>  		lat=$2
>>>>>>>>  		long=$3
>>>>>>>>  	else
>>>>>>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>>>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>>>> index 86d83fc..c2c2506 100755
>>>>>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>>>> @@ -158,16 +158,16 @@ if [ -s "$hoodfile" ]; then
>>>>>>>>  				exit 1
>>>>>>>>  			fi
>>>>>>>> -			# add 802.11s mesh if type == "802.11s"
>>>>>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" ==
>> "802.11s" ]
>>>>>> ) || [ "$mesh_type2" == "802.11s" ]; then
>>>>>>>> +			# add 802.11s mesh if type = "802.11s"
>>>>>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" =
>> "802.11s" ] )
>>>>>> || [
>>>>>>>> +"$mesh_type2" = "802.11s" ]; then
>>>>>>>>  				if ! wifiAddMesh "$radio" "$mesh_id";
>> then
>>>>>>>>  					echo "Can't add Mesh interface
>> on
>>>>>> $radio."
>>>>>>>>  					exit 1
>>>>>>>>  				fi
>>>>>>>>  			fi
>>>>>>>> -			# add IBSS mesh if type == "ibss"
>>>>>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss"
>> ] ) ||
>>>>>> [ "$mesh_type2" == "ibss" ]; then
>>>>>>>> +			# add IBSS mesh if type = "ibss"
>>>>>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ]
>> ) || [
>>>>>>>> +"$mesh_type2" = "ibss" ]; then
>>>>>>>>  				if ! wifiAddAdHocMesh "$radio"
>>>>>> "$mesh_essid" "$mesh_bssid"; then
>>>>>>>>  					echo "Can't add AdHocMesh
>> interface
>>>>>> on $radio."
>>>>>>>>  					exit 1
>>>>>>> diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>>>>>> b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>>>>>> index 85930a8..2a1c631 100755
>>>>>>> --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>>>>>> +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>>>>>>> @@ -15,7 +15,7 @@ json_select vpn
>>>>>>>  while json_select "$Index" > /dev/null
>>>>>>>  do
>>>>>>>>  	json_get_var protocol protocol
>>>>>>>> -	if [ "$protocol" == "fastd" ]; then
>>>>>>>> +	if [ "$protocol" = "fastd" ]; then
>>>>>>>>  		json_get_var servername name
>>>>>>>>  		filename="/etc/fastd/fff/peers/$servername"
>>>>>>>>  		echo "#name \"${servername}\";" > "$filename"
>>>>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>>>>>> index d149c04..b9ca1b6 100755
>>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
>>>>>>> @@ -9,7 +9,7 @@ UPGRADE_PATH="$(getUpgradePath)"
>>>>>>>  echo -en "Content-Type: text/html\r\n\r\n"
>>>>>>>  nav_entry() {
>>>>>>>>  	script_file="/cgi-bin/$1"
>>>>>>>> -	if [ "$script_file" == "$REQUEST_URI" ] ; then
>>>>>>>> +	if [ "$script_file" = "$REQUEST_URI" ] ; then
>>>>>>>>  		local class_active=' class="active"'
>>>>>>>>  	fi
>>>>>>>>  	echo -ne "\t<li${class_active}><a
>>>>>> href=\"${script_file}\">$2</a></li>\n\t\t"
>>>>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>>>>>> index 21bd4e7..821f7a0 100755
>>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
>>>>>>> @@ -5,7 +5,7 @@
>>>>>>>  . /lib/functions/fff/evalhoodinfo
>>>>>>>
>>>>>>>  # prepare
>>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>>>  	if [ "$POST_resethood" != "" ] ; then
>>>>>>>>  		# reset hood
>>>>>>>>  		rm "$hoodfilecopy" 2> /dev/null
>>>>>>> diff --git
>>>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>>>>>> index d3287bf..fc3055a 100755
>>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
>>>>>>> @@ -2,10 +2,10 @@
>>>>>>>
>>>>>>>  <%
>>>>>>>  # write
>>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>>>  	#check for special characters in password
>>>>>>>>  	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
>>>>>>>> -	if [ "$POST_pass1" == "" ] ; then
>>>>>>>> +	if [ -z "$POST_pass1" ] ; then
>>>>>>>>  		MSG='<span class="red">Das Passwort darf nicht leer
>>>>>> sein!</span>'
>>>>>>>      elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then
>>>>>>>>  		MSG='<span class="red">Passwort enth&auml;lt
>>>>>> ung&uuml;ltige Zeichen!</span>'
>>>>>>> @@ -46,7 +46,7 @@ fi
>>>>>>>  <%in /www/ssl/cgi-bin/footer %>
>>>>>>>  <%
>>>>>>>  #force instant password change
>>>>>>> -if [ "$restart_uhttpd" == "1" ] ; then
>>>>>>> +if [ "$restart_uhttpd" -eq 1 ] ; then
>>>>>> Für den Fall, dass $restart_uhttpd leer ist, würde es nicht korrekt
>>>>>> sein:
>>>>>> --- %< ---
>>>>>> # if [[ "" -eq 1 ]]; then echo true; else echo false; fi
>>>>>> -ash: out of range
>>>>>> false
>>>>>> --- >% ---
>>>>>>
>>>>>> Dummerweise weiß ich jetzt auch nicht, wie man damit gut umgeht.
>>>>>>
>>>>>> a) Doch einen String-Vergleich machen?
>>>>>>
>>>>>> if [ "X$restart_uhttpd" = "X1" ] ; then
>>>>>>
>>>>>> b) Oder beim -eq bleiben, aber ne Null ran?
>>>>>>
>>>>>> if [ "0$restart_uhttpd" -eq 1 ] ; then
>>>>>>
>>>>>> c) Oder die Fehlermeldung ignorieren??
>>>>>>
>>>>>> Keine Ahnung.. ;)
>>>>>>
>>>>>> Diese Anmerkung gilt natürlich auch für alle folgenden -eq Vergleiche.
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>>>  	/etc/init.d/uhttpd restart 2>/dev/null
>>>>>>>  fi
>>>>>>>  %>
>>>>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>>>>>> index 5912126..01506fc 100755
>>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
>>>>>>> @@ -3,7 +3,7 @@
>>>>>>>  <%
>>>>>>>  board_name=$(uci -q get board.model.name)
>>>>>>>  # write
>>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>>>  	if [ "$POST_change_mode" != "" ] ; then
>>>>>>>>  		sed -i '/^.*# set via WebUI/d' /etc/network.config
>>>>>>>>  		echo "ETHMODE=\"${POST_mode}\" # set via WebUI"
>>>>>>>> /etc/network.config
>>>>>>> @@ -45,7 +45,7 @@ format_state() {
>>>>>>>  format_port() {
>>>>>>>>  	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
>>>>>>>>  	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
>>>>>>>> -	if [ "$link" == "up" ] ; then
>>>>>>>> +	if [ "$link" = "up" ] ; then
>>>>>>>>  		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
>>>>>>>>  		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
>>>>>>>>  	else
>>>>>>> @@ -95,7 +95,7 @@ format_port() {
>>>>>>>>  				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }'
>>>>>> /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }'
>>>>>> /etc/network.$board_name)" ] ; then
>>>>>>>>  					wanif=$(uci -q get
>>>>>> network.wan.ifname)
>>>>>>>>  					link=$(cat
>>>>>> /sys/class/net/${wanif}/operstate)
>>>>>>>> -					if [ "$link" == "up" ] ; then
>>>>>>>> +					if [ "$link" = "up" ] ; then
>>>>>>>>  						speed="connected"
>>>>>>>>  					else
>>>>>>>>  						speed="no link"
>>>>>>> @@ -166,10 +166,10 @@ format_port() {
>>>>>>>>  				<th style="width:
>>>>>> 1em;">Anschluss&nbsp;Modus:</th>
>>>>>>>>  				<td>
>>>>>>>>  					<select name="mode">
>>>>>>>> -						<option value="BATMAN"
>> <%
>>>>>> [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" '
>>>>>> %>>BATMAN</option>
>>>>>>>> -						<option value="CLIENT"
>> <% [
>>>>>> "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" '
>>>>>> %>>CLIENT</option>
>>>>>>>> +						<option value="BATMAN"
>> <%
>>>>>> [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" '
>>>>>> %>>BATMAN</option>
>>>>>>>> +						<option value="CLIENT"
>> <% [
>>>>>> "$ETHMODE" = "CLIENT" ] && echo
>>>>>>>> +-n 'selected="selected" ' %>>CLIENT</option>
>>>>>>>>  						<% if grep -q "ONE_PORT"
>>>>>> "/etc/network.$board_name" ; then %>
>>>>>>>> -						<option value="WAN" <%
>> [
>>>>>> "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" '
>>>>>> %>>WAN</option>
>>>>>>>> +						<option value="WAN" <%
>> [
>>>>>> "$ETHMODE" = "WAN" ] && echo -n
>>>>>>>> +'selected="selected" ' %>>WAN</option>
>>>>>>>>  						<% fi %>
>>>>>>>>  					</select>
>>>>>>>>  				</td>
>>>>>>> @@ -207,16 +207,16 @@ format_port() {
>>>>>>>>  			<tr>
>>>>>>>>  				<td>
>>>>>>>>  					<select name="mode0">
>>>>>>>> -						<option value="BATMAN"
>> <%
>>>>>> [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" '
>>>>>> %>>BATMAN</option>
>>>>>>>> -						<option value="CLIENT"
>> <% [
>>>>>> "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" '
>>>>>> %>>CLIENT</option>
>>>>>>>> -						<option value="WAN" <%
>> [
>>>>>> "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" '
>>>>>> %>>WAN</option>
>>>>>>>> +						<option value="BATMAN"
>> <%
>>>>>> [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" '
>>>>>> %>>BATMAN</option>
>>>>>>>> +						<option value="CLIENT"
>> <% [
>>>>>> "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" '
>>>>>> %>>CLIENT</option>
>>>>>>>> +						<option value="WAN" <%
>> [
>>>>>> "$LAN0MODE" = "WAN" ] && echo -n
>>>>>>>> +'selected="selected" ' %>>WAN</option>
>>>>>>>>  					</select>
>>>>>>>>  				</td>
>>>>>>>>  				<td>
>>>>>>>>  					<select name="mode1">
>>>>>>>> -						<option value="BATMAN"
>> <%
>>>>>> [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" '
>>>>>> %>>BATMAN</option>
>>>>>>>> -						<option value="CLIENT"
>> <% [
>>>>>> "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" '
>>>>>> %>>CLIENT</option>
>>>>>>>> -						<option value="WAN" <%
>> [
>>>>>> "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" '
>>>>>> %>>WAN</option>
>>>>>>>> +						<option value="BATMAN"
>> <%
>>>>>> [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" '
>>>>>> %>>BATMAN</option>
>>>>>>>> +						<option value="CLIENT"
>> <% [
>>>>>> "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" '
>>>>>> %>>CLIENT</option>
>>>>>>>> +						<option value="WAN" <%
>> [
>>>>>> "$LAN1MODE" = "WAN" ] && echo -n
>>>>>>>> +'selected="selected" ' %>>WAN</option>
>>>>>>>>  					</select>
>>>>>>>>  				</td>
>>>>>>>>  				<td><input type="submit"
>>>>>> name="change_twoport" /></td>
>>>>>>> @@ -240,7 +240,7 @@ format_port() {
>>>>>>>  <%in /www/ssl/cgi-bin/footer %>
>>>>>>>  <%
>>>>>>>  # write
>>>>>>> -if [ "$do_reboot" == "1" ] ; then
>>>>>>> +if [ "$do_reboot" -eq 1 ] ; then
>>>>>>>  	reboot
>>>>>>>  fi
>>>>>>>  %>
>>>>>>> diff --git
>>>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>>>>>> index eddc4ff..2efdf3e 100755
>>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
>>>>>>> @@ -2,7 +2,7 @@
>>>>>>>
>>>>>>>  <%
>>>>>>>  # prepare
>>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>>>  	if [ "$POST_reboot" != "" ] ; then
>>>>>>>>  		do_reboot=1
>>>>>>>>  		MSG='<span class="green">Router wird
>>>>>> neugestartet...</span>'
>>>>>>> @@ -29,7 +29,7 @@ fi
>>>>>>>  <%in /www/ssl/cgi-bin/footer %>
>>>>>>>  <%
>>>>>>>  # write
>>>>>>> -if [ "$do_reboot" == "1" ] ; then
>>>>>>> +if [ "$do_reboot" -eq 1 ] ; then
>>>>>>  	reboot
>>>>>>>  fi
>>>>>>>  %>
>>>>>>> diff --git
>>>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>>>>>> index cfb3a6b..7dd5eed 100755
>>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
>>>>>>> @@ -2,7 +2,7 @@
>>>>>>>
>>>>>>>  <%
>>>>>>>  # write
>>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>>>  	#check for valid hostname as specified in rfc 1123
>>>>>>>>  	#see http://stackoverflow.com/a/3824105
>>>>>>>>  	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
>>>>>>> @@ -24,7 +24,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>>
>>>>>>>>  		# Bitratenbegrenzung
>>>>>>>>  		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set
>>>>>> fff.trafficcontrol=fff
>>>>>>>> -		if [ "$POST_traffic_limit" == "on" ] ; then
>>>>>>>> +		if [ "$POST_traffic_limit" = "on" ] ; then
>>>>>>>>  			uci -q set "fff.trafficcontrol.enabled=1"
>>>>>>>>  			uci -q set "simple-tc.example.enabled=1"
>>>>>>>>  		else
>>>>>>> @@ -40,7 +40,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>>
>>>>>>>>  		# Restliche Einstellungen
>>>>>>>>  		uci -q set "fff.notifyupdate=webui"
>>>>>>>> -		if [ "$POST_upgrade_notification" == "on" ] ; then
>>>>>>>> +		if [ "$POST_upgrade_notification" = "on" ] ; then
>>>>>>>>  			uci -q set "fff.notifyupdate.value=1"
>>>>>>>>  		else
>>>>>>>>  			uci -q set "fff.notifyupdate.value=0"
>>>>>>> @@ -50,7 +50,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>>
>>>>>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
>>>>>>>>  			uci -q set "fff.poe_passthrough=fff"
>>>>>>>> -			if [ "$POST_poe_passthrough" == "on" ] ; then
>>>>>>>> +			if [ "$POST_poe_passthrough" = "on" ] ; then
>>>>>>>>  				uci -q set "fff.poe_passthrough.active=1"
>>>>>>>>  				uci -q set
>> "system.poe_passthrough.value=1"
>>>>>>>>  			else
>>>>>>> @@ -70,12 +70,12 @@ fi
>>>>>>>  <%
>>>>>>>  # read
>>>>>>>  chkd='checked="checked" '
>>>>>>> -if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then #
>>>>>>> not set=0
>>>>>>> +if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then #
>>>>>>> +not set=0
>>>>>>>  	traffic_checked="$chkd"
>>>>>>>  else
>>>>>>>>  	traffic_checked=""
>>>>>>>  fi
>>>>>>> -if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not
>>>>>>> set=1
>>>>>>> +if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not
>>>>>>> +set=1
>>>>>>>  	upgrade_checked=""
>>>>>>>  else
>>>>>>>>  	upgrade_checked="$chkd"
>>>>>>> @@ -122,7 +122,7 @@ fi
>>>>>>>
>>>>>>>>  		<%
>>>>>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
>>>>>>>> -			if [ "$(uci -q get 'fff.poe_passthrough.active')" ==
>> "1" ]
>>>>>> ; then # not set=0
>>>>>>> +			if [ "$(uci -q get 'fff.poe_passthrough.active')" -
>> eq 1 ] ;
>>>>>> then #
>>>>>>> +not set=0
>>>>>>>  				poe_pt_checked="$chkd"
>>>>>>>>  			else
>>>>>>>>  				poe_pt_checked=""
>>>>>>> diff --git
>>>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>>>>>> index af46023..9762edc 100755
>>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
>>>>>>> @@ -2,10 +2,10 @@
>>>>>>>
>>>>>>>  <%
>>>>>>>  # prepare
>>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
>>>>>>>>  	if [ "$POST_reset" != "" ] ; then
>>>>>>>>  		# reset
>>>>>>>> -		if [ "$FORM_really_reset" == "on" ] ; then
>>>>>>>> +		if [ "$FORM_really_reset" = "on" ] ; then
>>>>>>>>  			do_reset=1
>>>>>>>>  			MSG='<span class="green">Router wird
>>>>>> zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
>>>>>>>>  		fi
>>>>>>> @@ -13,12 +13,12 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>>>>>>>>  		# upgrade
>>>>>>>>  		if [ ! -f "$HASERL_firmware_path" ] ; then
>>>>>>>>  			MSG='<span class="red">Firmware Datei nicht
>>>>>> gefunden!</span>'
>>>>>>>> -		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" ==
>> "0" ] ;
>>>>>> then
>>>>>>>> +		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0
>> ] ;
>>>>>>>> +then
>>>>>>>>  			MSG='<span class="red">Firmware Datei ist
>>>>>> leer!</span>'
>>>>>>>>  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ;
>>>>>> then
>>>>>>>>  			MSG="<span class=\"red\">Firmware Datei
>>>>>> ung&uuml;ltig: <tt>${error}</tt></span>"
>>>>>>>>  		else
>>>>>>>> -			if [ "$POST_keep_config" == "on" ] ; then
>>>>>>>> +			if [ "$POST_keep_config" = "on" ] ; then
>>>>>>>>  				args=""
>>>>>>>>  			else
>>>>>>>>  				args="-n"
>>>>>>> @@ -63,12 +63,12 @@ fi
>>>>>>>  <%in /www/ssl/cgi-bin/footer %>
>>>>>>>  <%
>>>>>>>  # write
>>>>>>> -if [ "$do_reset" == "1" ] ; then
>>>>>>> +if [ "$do_reset" -eq 1 ] ; then
>>>>>>>>  	echo "<pre>"
>>>>>>>>  	echo y | firstboot
>>>>>>>>  	reboot
>>>>>>>>  	echo "</pre>"
>>>>>>> -elif [ "$do_sysupgrade" == "1" ] ; then
>>>>>>> +elif [ "$do_sysupgrade" -eq 1 ] ; then
>>>>>>>>  	echo "<pre>"
>>>>>>>>  	echo "# sysupgrade $args $HASERL_firmware_path"
>>>>>>>>  	sysupgrade $args $HASERL_firmware_path
>
Adrian Schmutzler July 26, 2018, 2:14 p.m.
Wenn der dann auch ohne den Vergleich richtig macht, soll mir das recht sein.

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
> robert
> Sent: Donnerstag, 26. Juli 2018 16:13
> To: franken-dev@freifunk.net
> Subject: Re: [PATCH v2] Remove double equals.
> 
> 
> 
> Am 26.07.2018 um 16:06 schrieb Adrian Schmutzler:
> > Hallo robert,
> >
> > beim v1 würden die Anführungszeichen für die $# fehlen (gleich die ersten
> beiden Änderungen).
> Die fehlen, weil man die nicht braucht. Falls $# wordsplitting oder
> globbing machen wuerde ist wirklich was kaputt.
> >
> > Außerdem ist da im Patchwork die Commit-Message kaputt, der hat irgendwie
> die Leerzeilen ignoriert. (Beim v2 hats dann gepasst).
> >
> > Also vll. besser doch nochmal als v3 mit den genannten Änderungen, wenn du
> möchtest.
> >
> > Grüße
> >
> > Adrian
> >
> >> -----Original Message-----
> >> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of
> >> robert
> >> Sent: Donnerstag, 26. Juli 2018 15:55
> >> To: franken-dev@freifunk.net
> >> Subject: Re: [PATCH v2] Remove double equals.
> >>
> >> Hi Adrian,
> >>
> >>
> >> Am 26.07.2018 um 15:01 schrieb Adrian Schmutzler:
> >>> Hallo,
> >>>
> >>> ich würde wirklich alles, was equal ist, als string vergleichen.
> >>>
> >>> [ "$do_reboot" = "1" ]
> >>>
> >>> [ "$#" = "1" ]
> >> Das entspräche dann genau Patch v1! Soo hässlich finde ich das gar
> >> nicht. [ $# -eq 1 ] sieht auch nicht besser aus.
> >> Ich kann gut damit leben, wichtig ist nur, dass das bash-Zeugs weg ist.
> >>
> >> Wie ist das? Muss ich den nochmal schicken?
> >> Robert
> >>> Das sieht zwar nicht schön aus, aber es funktioniert sicher und ohne
> >> Nebenwirkungen (keine Randfälle, keine Missverständnisse).
> >>> Die anderen Aufräumarbeiten finde ich gut.
> >>>
> >>> Grüße
> >>>
> >>> Adrian
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> >> Of
> >>>> robert
> >>>> Sent: Donnerstag, 26. Juli 2018 14:06
> >>>> To: franken-dev@freifunk.net
> >>>> Subject: Re: [PATCH v2] Remove double equals.
> >>>>
> >>>> Hallo,
> >>>>
> >>>> ich würde mich da Adrian anschließen und alles als String lassen. Nur $#
> >>>> als Integer vergleichen, denn da geht es ja tatsächlich um die Anzahl
> >>>> der Parameter.
> >>>>
> >>>> Wenn das ok ist mach ich den Patch dann so.
> >>>>
> >>>> Bei den  [ $do_reboot = "1" ]  etc. wäre es ja eigentlich ein logischer
> >>>> test. Also "is set" , die 1 hat da keine Bedeutung, das kann auch "ja"
> >>>> sein. Das würde man dann z.B so machen:
> >>>>
> >>>> [ ${do_reboot+x} ] && reboot      Aber das versteht erstmal kaum einer ;-)
> >>>>
> >>>> Robert
> >>>>
> >>>>
> >>>> Am 26.07.2018 um 10:49 schrieb mail@adrianschmutzler.de:
> >>>>> Hallo,
> >>>>>
> >>>>> solange es nur um Gleichheit geht, würde ich bei dem String-Vergleich
> >>>> bleiben, weil der nachvollziehbar funktioniert.
> >>>>> Alles andere bietet in meinen Augen keinen echten Vorteil, aber macht
> das
> >>>> Verständnis des Codes komplexer.
> >>>>> Grüße
> >>>>>
> >>>>> Adrian
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On
> Behalf
> >>>>>> Of Tim Niemeyer
> >>>>>> Sent: Mittwoch, 25. Juli 2018 23:18
> >>>>>> To: Robert Langhammer <rlanghammer@web.de>; franken-
> >>>>>> dev@freifunk.net
> >>>>>> Subject: Re: [PATCH v2] Remove double equals.
> >>>>>>
> >>>>>> Am Mittwoch, den 25.07.2018, 18:00 +0200 schrieb Robert Langhammer:
> >>>>>>> == is a bash specific alias for = , and should not be used in
> >>>>>>> #!/bin/sh scripts. Not in #!/usr/bin/haserl scripts either, where the
> >>>>>>> shell defaults to /bin/sh.
> >>>>>>>
> >>>>>>>> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> >>>>>>> ---
> >>>>>>>
> >>>>>>> Changes in v2:
> >>>>>>> - do an integer comparison when the operand is an integer
> >>>>>>> - use -z to test an empty string
> >>>>>>>
> >>>>>>> ---
> >>>>>>>  .../fff-hoods/files/usr/lib/functions/fff/hoodfile |  4 ++--
> >>>>>>>  .../fff/fff-hoods/files/usr/sbin/configurehood     |  8 +++----
> >>>>>>>  .../fff/fff-vpn-select/files/usr/sbin/vpn-select   |  2 +-
> >>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/header       |  2 +-
> >>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  2 +-
> >>>>>>>  .../fff-web/files/www/ssl/cgi-bin/password.html    |  6 ++---
> >>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   | 26
> >>>>>>> +++++++++++-----------
> >>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/reboot.html  |  4 ++--
> >>>>>>>  .../fff-web/files/www/ssl/cgi-bin/settings.html    | 14 ++++++------
> >>>>>>>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 12 +++++-----
> >>>>>>>  10 files changed, 40 insertions(+), 40 deletions(-)
> >>>>>>>
> >>>>>>> diff --git
> >>>>>>> a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>>>>>> b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>>>>>> index 8c80802..89af84c 100644
> >>>>>>> --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>>>>>> +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile
> >>>>>>> @@ -94,10 +94,10 @@ getGatewayHoodfile() {
> >>>>>>>  }
> >>>>>>>
> >>>>>>>  getKeyserverHoodfile() {
> >>>>>>>> -	if [ $# == 1 ]; then
> >>>>>>>> +	if [ $# -eq 1 ]; then
> >>>>>>>>  		lat=$(uci -q get fff.system.latitude)
> >>>>>>>>  		long=$(uci -q get fff.system.longitude)
> >>>>>>>> -	elif [ $# == 3 ]; then
> >>>>>>>> +	elif [ $# -eq 3 ]; then
> >>>>>>>>  		lat=$2
> >>>>>>>>  		long=$3
> >>>>>>>>  	else
> >>>>>>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>>>>>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>>>>>> index 86d83fc..c2c2506 100755
> >>>>>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>>>>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>>>>>> @@ -158,16 +158,16 @@ if [ -s "$hoodfile" ]; then
> >>>>>>>>  				exit 1
> >>>>>>>>  			fi
> >>>>>>>> -			# add 802.11s mesh if type == "802.11s"
> >>>>>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" ==
> >> "802.11s" ]
> >>>>>> ) || [ "$mesh_type2" == "802.11s" ]; then
> >>>>>>>> +			# add 802.11s mesh if type = "802.11s"
> >>>>>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" =
> >> "802.11s" ] )
> >>>>>> || [
> >>>>>>>> +"$mesh_type2" = "802.11s" ]; then
> >>>>>>>>  				if ! wifiAddMesh "$radio" "$mesh_id";
> >> then
> >>>>>>>>  					echo "Can't add Mesh interface
> >> on
> >>>>>> $radio."
> >>>>>>>>  					exit 1
> >>>>>>>>  				fi
> >>>>>>>>  			fi
> >>>>>>>> -			# add IBSS mesh if type == "ibss"
> >>>>>>>> -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss"
> >> ] ) ||
> >>>>>> [ "$mesh_type2" == "ibss" ]; then
> >>>>>>>> +			# add IBSS mesh if type = "ibss"
> >>>>>>>> +			if ( [ -n "$radio5" ] && [ "$mesh_type5" = "ibss" ]
> >> ) || [
> >>>>>>>> +"$mesh_type2" = "ibss" ]; then
> >>>>>>>>  				if ! wifiAddAdHocMesh "$radio"
> >>>>>> "$mesh_essid" "$mesh_bssid"; then
> >>>>>>>>  					echo "Can't add AdHocMesh
> >> interface
> >>>>>> on $radio."
> >>>>>>>>  					exit 1
> >>>>>>> diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>>>>>> b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>>>>>> index 85930a8..2a1c631 100755
> >>>>>>> --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>>>>>> +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
> >>>>>>> @@ -15,7 +15,7 @@ json_select vpn
> >>>>>>>  while json_select "$Index" > /dev/null
> >>>>>>>  do
> >>>>>>>>  	json_get_var protocol protocol
> >>>>>>>> -	if [ "$protocol" == "fastd" ]; then
> >>>>>>>> +	if [ "$protocol" = "fastd" ]; then
> >>>>>>>>  		json_get_var servername name
> >>>>>>>>  		filename="/etc/fastd/fff/peers/$servername"
> >>>>>>>>  		echo "#name \"${servername}\";" > "$filename"
> >>>>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>>>>>> index d149c04..b9ca1b6 100755
> >>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/header
> >>>>>>> @@ -9,7 +9,7 @@ UPGRADE_PATH="$(getUpgradePath)"
> >>>>>>>  echo -en "Content-Type: text/html\r\n\r\n"
> >>>>>>>  nav_entry() {
> >>>>>>>>  	script_file="/cgi-bin/$1"
> >>>>>>>> -	if [ "$script_file" == "$REQUEST_URI" ] ; then
> >>>>>>>> +	if [ "$script_file" = "$REQUEST_URI" ] ; then
> >>>>>>>>  		local class_active=' class="active"'
> >>>>>>>>  	fi
> >>>>>>>>  	echo -ne "\t<li${class_active}><a
> >>>>>> href=\"${script_file}\">$2</a></li>\n\t\t"
> >>>>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>>>>>> index 21bd4e7..821f7a0 100755
> >>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
> >>>>>>> @@ -5,7 +5,7 @@
> >>>>>>>  . /lib/functions/fff/evalhoodinfo
> >>>>>>>
> >>>>>>>  # prepare
> >>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>>>  	if [ "$POST_resethood" != "" ] ; then
> >>>>>>>>  		# reset hood
> >>>>>>>>  		rm "$hoodfilecopy" 2> /dev/null
> >>>>>>> diff --git
> >>>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>>>>>> index d3287bf..fc3055a 100755
> >>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/password.html
> >>>>>>> @@ -2,10 +2,10 @@
> >>>>>>>
> >>>>>>>  <%
> >>>>>>>  # write
> >>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>>>  	#check for special characters in password
> >>>>>>>>  	regex='^[a-zA-Z0-9!#\$%\(\)\*\+,\.:;=\?@\^_-]+$'
> >>>>>>>> -	if [ "$POST_pass1" == "" ] ; then
> >>>>>>>> +	if [ -z "$POST_pass1" ] ; then
> >>>>>>>>  		MSG='<span class="red">Das Passwort darf nicht leer
> >>>>>> sein!</span>'
> >>>>>>>      elif ! echo -n "$POST_pass1" | egrep -q "$regex"; then
> >>>>>>>>  		MSG='<span class="red">Passwort enth&auml;lt
> >>>>>> ung&uuml;ltige Zeichen!</span>'
> >>>>>>> @@ -46,7 +46,7 @@ fi
> >>>>>>>  <%in /www/ssl/cgi-bin/footer %>
> >>>>>>>  <%
> >>>>>>>  #force instant password change
> >>>>>>> -if [ "$restart_uhttpd" == "1" ] ; then
> >>>>>>> +if [ "$restart_uhttpd" -eq 1 ] ; then
> >>>>>> Für den Fall, dass $restart_uhttpd leer ist, würde es nicht korrekt
> >>>>>> sein:
> >>>>>> --- %< ---
> >>>>>> # if [[ "" -eq 1 ]]; then echo true; else echo false; fi
> >>>>>> -ash: out of range
> >>>>>> false
> >>>>>> --- >% ---
> >>>>>>
> >>>>>> Dummerweise weiß ich jetzt auch nicht, wie man damit gut umgeht.
> >>>>>>
> >>>>>> a) Doch einen String-Vergleich machen?
> >>>>>>
> >>>>>> if [ "X$restart_uhttpd" = "X1" ] ; then
> >>>>>>
> >>>>>> b) Oder beim -eq bleiben, aber ne Null ran?
> >>>>>>
> >>>>>> if [ "0$restart_uhttpd" -eq 1 ] ; then
> >>>>>>
> >>>>>> c) Oder die Fehlermeldung ignorieren??
> >>>>>>
> >>>>>> Keine Ahnung.. ;)
> >>>>>>
> >>>>>> Diese Anmerkung gilt natürlich auch für alle folgenden -eq Vergleiche.
> >>>>>>
> >>>>>> Tim
> >>>>>>
> >>>>>>>  	/etc/init.d/uhttpd restart 2>/dev/null
> >>>>>>>  fi
> >>>>>>>  %>
> >>>>>>> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>>>>>> index 5912126..01506fc 100755
> >>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> >>>>>>> @@ -3,7 +3,7 @@
> >>>>>>>  <%
> >>>>>>>  board_name=$(uci -q get board.model.name)
> >>>>>>>  # write
> >>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>>>  	if [ "$POST_change_mode" != "" ] ; then
> >>>>>>>>  		sed -i '/^.*# set via WebUI/d' /etc/network.config
> >>>>>>>>  		echo "ETHMODE=\"${POST_mode}\" # set via WebUI"
> >>>>>>>> /etc/network.config
> >>>>>>> @@ -45,7 +45,7 @@ format_state() {
> >>>>>>>  format_port() {
> >>>>>>>>  	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
> >>>>>>>>  	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
> >>>>>>>> -	if [ "$link" == "up" ] ; then
> >>>>>>>> +	if [ "$link" = "up" ] ; then
> >>>>>>>>  		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
> >>>>>>>>  		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
> >>>>>>>>  	else
> >>>>>>> @@ -95,7 +95,7 @@ format_port() {
> >>>>>>>>  				if [ ! "$(awk -F= '/WANDEV=/ { print $2 }'
> >>>>>> /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }'
> >>>>>> /etc/network.$board_name)" ] ; then
> >>>>>>>>  					wanif=$(uci -q get
> >>>>>> network.wan.ifname)
> >>>>>>>>  					link=$(cat
> >>>>>> /sys/class/net/${wanif}/operstate)
> >>>>>>>> -					if [ "$link" == "up" ] ; then
> >>>>>>>> +					if [ "$link" = "up" ] ; then
> >>>>>>>>  						speed="connected"
> >>>>>>>>  					else
> >>>>>>>>  						speed="no link"
> >>>>>>> @@ -166,10 +166,10 @@ format_port() {
> >>>>>>>>  				<th style="width:
> >>>>>> 1em;">Anschluss&nbsp;Modus:</th>
> >>>>>>>>  				<td>
> >>>>>>>>  					<select name="mode">
> >>>>>>>> -						<option value="BATMAN"
> >> <%
> >>>>>> [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" '
> >>>>>> %>>BATMAN</option>
> >>>>>>>> -						<option value="CLIENT"
> >> <% [
> >>>>>> "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" '
> >>>>>> %>>CLIENT</option>
> >>>>>>>> +						<option value="BATMAN"
> >> <%
> >>>>>> [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" '
> >>>>>> %>>BATMAN</option>
> >>>>>>>> +						<option value="CLIENT"
> >> <% [
> >>>>>> "$ETHMODE" = "CLIENT" ] && echo
> >>>>>>>> +-n 'selected="selected" ' %>>CLIENT</option>
> >>>>>>>>  						<% if grep -q "ONE_PORT"
> >>>>>> "/etc/network.$board_name" ; then %>
> >>>>>>>> -						<option value="WAN" <%
> >> [
> >>>>>> "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" '
> >>>>>> %>>WAN</option>
> >>>>>>>> +						<option value="WAN" <%
> >> [
> >>>>>> "$ETHMODE" = "WAN" ] && echo -n
> >>>>>>>> +'selected="selected" ' %>>WAN</option>
> >>>>>>>>  						<% fi %>
> >>>>>>>>  					</select>
> >>>>>>>>  				</td>
> >>>>>>> @@ -207,16 +207,16 @@ format_port() {
> >>>>>>>>  			<tr>
> >>>>>>>>  				<td>
> >>>>>>>>  					<select name="mode0">
> >>>>>>>> -						<option value="BATMAN"
> >> <%
> >>>>>> [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> >>>>>> %>>BATMAN</option>
> >>>>>>>> -						<option value="CLIENT"
> >> <% [
> >>>>>> "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> >>>>>> %>>CLIENT</option>
> >>>>>>>> -						<option value="WAN" <%
> >> [
> >>>>>> "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" '
> >>>>>> %>>WAN</option>
> >>>>>>>> +						<option value="BATMAN"
> >> <%
> >>>>>> [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> >>>>>> %>>BATMAN</option>
> >>>>>>>> +						<option value="CLIENT"
> >> <% [
> >>>>>> "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> >>>>>> %>>CLIENT</option>
> >>>>>>>> +						<option value="WAN" <%
> >> [
> >>>>>> "$LAN0MODE" = "WAN" ] && echo -n
> >>>>>>>> +'selected="selected" ' %>>WAN</option>
> >>>>>>>>  					</select>
> >>>>>>>>  				</td>
> >>>>>>>>  				<td>
> >>>>>>>>  					<select name="mode1">
> >>>>>>>> -						<option value="BATMAN"
> >> <%
> >>>>>> [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" '
> >>>>>> %>>BATMAN</option>
> >>>>>>>> -						<option value="CLIENT"
> >> <% [
> >>>>>> "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" '
> >>>>>> %>>CLIENT</option>
> >>>>>>>> -						<option value="WAN" <%
> >> [
> >>>>>> "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" '
> >>>>>> %>>WAN</option>
> >>>>>>>> +						<option value="BATMAN"
> >> <%
> >>>>>> [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" '
> >>>>>> %>>BATMAN</option>
> >>>>>>>> +						<option value="CLIENT"
> >> <% [
> >>>>>> "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" '
> >>>>>> %>>CLIENT</option>
> >>>>>>>> +						<option value="WAN" <%
> >> [
> >>>>>> "$LAN1MODE" = "WAN" ] && echo -n
> >>>>>>>> +'selected="selected" ' %>>WAN</option>
> >>>>>>>>  					</select>
> >>>>>>>>  				</td>
> >>>>>>>>  				<td><input type="submit"
> >>>>>> name="change_twoport" /></td>
> >>>>>>> @@ -240,7 +240,7 @@ format_port() {
> >>>>>>>  <%in /www/ssl/cgi-bin/footer %>
> >>>>>>>  <%
> >>>>>>>  # write
> >>>>>>> -if [ "$do_reboot" == "1" ] ; then
> >>>>>>> +if [ "$do_reboot" -eq 1 ] ; then
> >>>>>>>  	reboot
> >>>>>>>  fi
> >>>>>>>  %>
> >>>>>>> diff --git
> >>>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>>>>>> index eddc4ff..2efdf3e 100755
> >>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/reboot.html
> >>>>>>> @@ -2,7 +2,7 @@
> >>>>>>>
> >>>>>>>  <%
> >>>>>>>  # prepare
> >>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>>>  	if [ "$POST_reboot" != "" ] ; then
> >>>>>>>>  		do_reboot=1
> >>>>>>>>  		MSG='<span class="green">Router wird
> >>>>>> neugestartet...</span>'
> >>>>>>> @@ -29,7 +29,7 @@ fi
> >>>>>>>  <%in /www/ssl/cgi-bin/footer %>
> >>>>>>>  <%
> >>>>>>>  # write
> >>>>>>> -if [ "$do_reboot" == "1" ] ; then
> >>>>>>> +if [ "$do_reboot" -eq 1 ] ; then
> >>>>>>  	reboot
> >>>>>>>  fi
> >>>>>>>  %>
> >>>>>>> diff --git
> >>>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>>>>>> index cfb3a6b..7dd5eed 100755
> >>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
> >>>>>>> @@ -2,7 +2,7 @@
> >>>>>>>
> >>>>>>>  <%
> >>>>>>>  # write
> >>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>>>  	#check for valid hostname as specified in rfc 1123
> >>>>>>>>  	#see http://stackoverflow.com/a/3824105
> >>>>>>>>  	regex='^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])'
> >>>>>>> @@ -24,7 +24,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>>
> >>>>>>>>  		# Bitratenbegrenzung
> >>>>>>>>  		uci -q get "fff.trafficcontrol" > /dev/null || uci -q set
> >>>>>> fff.trafficcontrol=fff
> >>>>>>>> -		if [ "$POST_traffic_limit" == "on" ] ; then
> >>>>>>>> +		if [ "$POST_traffic_limit" = "on" ] ; then
> >>>>>>>>  			uci -q set "fff.trafficcontrol.enabled=1"
> >>>>>>>>  			uci -q set "simple-tc.example.enabled=1"
> >>>>>>>>  		else
> >>>>>>> @@ -40,7 +40,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>>
> >>>>>>>>  		# Restliche Einstellungen
> >>>>>>>>  		uci -q set "fff.notifyupdate=webui"
> >>>>>>>> -		if [ "$POST_upgrade_notification" == "on" ] ; then
> >>>>>>>> +		if [ "$POST_upgrade_notification" = "on" ] ; then
> >>>>>>>>  			uci -q set "fff.notifyupdate.value=1"
> >>>>>>>>  		else
> >>>>>>>>  			uci -q set "fff.notifyupdate.value=0"
> >>>>>>> @@ -50,7 +50,7 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>>
> >>>>>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
> >>>>>>>>  			uci -q set "fff.poe_passthrough=fff"
> >>>>>>>> -			if [ "$POST_poe_passthrough" == "on" ] ; then
> >>>>>>>> +			if [ "$POST_poe_passthrough" = "on" ] ; then
> >>>>>>>>  				uci -q set "fff.poe_passthrough.active=1"
> >>>>>>>>  				uci -q set
> >> "system.poe_passthrough.value=1"
> >>>>>>>>  			else
> >>>>>>> @@ -70,12 +70,12 @@ fi
> >>>>>>>  <%
> >>>>>>>  # read
> >>>>>>>  chkd='checked="checked" '
> >>>>>>> -if [ "$(uci -q get 'fff.trafficcontrol.enabled')" == "1" ] ; then #
> >>>>>>> not set=0
> >>>>>>> +if [ "$(uci -q get 'fff.trafficcontrol.enabled')" -eq 1 ] ; then #
> >>>>>>> +not set=0
> >>>>>>>  	traffic_checked="$chkd"
> >>>>>>>  else
> >>>>>>>>  	traffic_checked=""
> >>>>>>>  fi
> >>>>>>> -if [ "$(uci -q get 'fff.notifyupdate.value')" == "0" ] ; then # not
> >>>>>>> set=1
> >>>>>>> +if [ "$(uci -q get 'fff.notifyupdate.value')" -eq 0 ] ; then # not
> >>>>>>> +set=1
> >>>>>>>  	upgrade_checked=""
> >>>>>>>  else
> >>>>>>>>  	upgrade_checked="$chkd"
> >>>>>>> @@ -122,7 +122,7 @@ fi
> >>>>>>>
> >>>>>>>>  		<%
> >>>>>>>>  		if uci -q get system.poe_passthrough > /dev/null ; then
> >>>>>>>> -			if [ "$(uci -q get 'fff.poe_passthrough.active')" ==
> >> "1" ]
> >>>>>> ; then # not set=0
> >>>>>>> +			if [ "$(uci -q get 'fff.poe_passthrough.active')" -
> >> eq 1 ] ;
> >>>>>> then #
> >>>>>>> +not set=0
> >>>>>>>  				poe_pt_checked="$chkd"
> >>>>>>>>  			else
> >>>>>>>>  				poe_pt_checked=""
> >>>>>>> diff --git
> >>>>>>> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>>>>>> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>>>>>> index af46023..9762edc 100755
> >>>>>>> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>>>>>> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> >>>>>>> @@ -2,10 +2,10 @@
> >>>>>>>
> >>>>>>>  <%
> >>>>>>>  # prepare
> >>>>>>> -if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>> +if [ "$REQUEST_METHOD" = "POST" ] ; then
> >>>>>>>>  	if [ "$POST_reset" != "" ] ; then
> >>>>>>>>  		# reset
> >>>>>>>> -		if [ "$FORM_really_reset" == "on" ] ; then
> >>>>>>>> +		if [ "$FORM_really_reset" = "on" ] ; then
> >>>>>>>>  			do_reset=1
> >>>>>>>>  			MSG='<span class="green">Router wird
> >>>>>> zur&uuml;ckgesetzt und anschlie&szlig;end neugestartet...</span>'
> >>>>>>>>  		fi
> >>>>>>> @@ -13,12 +13,12 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
> >>>>>>>>  		# upgrade
> >>>>>>>>  		if [ ! -f "$HASERL_firmware_path" ] ; then
> >>>>>>>>  			MSG='<span class="red">Firmware Datei nicht
> >>>>>> gefunden!</span>'
> >>>>>>>> -		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" ==
> >> "0" ] ;
> >>>>>> then
> >>>>>>>> +		elif [ "$(du -k "$HASERL_firmware_path" | cut -f1)" -eq 0
> >> ] ;
> >>>>>>>> +then
> >>>>>>>>  			MSG='<span class="red">Firmware Datei ist
> >>>>>> leer!</span>'
> >>>>>>>>  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ;
> >>>>>> then
> >>>>>>>>  			MSG="<span class=\"red\">Firmware Datei
> >>>>>> ung&uuml;ltig: <tt>${error}</tt></span>"
> >>>>>>>>  		else
> >>>>>>>> -			if [ "$POST_keep_config" == "on" ] ; then
> >>>>>>>> +			if [ "$POST_keep_config" = "on" ] ; then
> >>>>>>>>  				args=""
> >>>>>>>>  			else
> >>>>>>>>  				args="-n"
> >>>>>>> @@ -63,12 +63,12 @@ fi
> >>>>>>>  <%in /www/ssl/cgi-bin/footer %>
> >>>>>>>  <%
> >>>>>>>  # write
> >>>>>>> -if [ "$do_reset" == "1" ] ; then
> >>>>>>> +if [ "$do_reset" -eq 1 ] ; then
> >>>>>>>>  	echo "<pre>"
> >>>>>>>>  	echo y | firstboot
> >>>>>>>>  	reboot
> >>>>>>>>  	echo "</pre>"
> >>>>>>> -elif [ "$do_sysupgrade" == "1" ] ; then
> >>>>>>> +elif [ "$do_sysupgrade" -eq 1 ] ; then
> >>>>>>>>  	echo "<pre>"
> >>>>>>>>  	echo "# sysupgrade $args $HASERL_firmware_path"
> >>>>>>>>  	sysupgrade $args $HASERL_firmware_path
> >