ash: Frage zu [ ... ]

20/03/2011 - 13:31 von Wolfgang Meiners | Report spam
Hallo Gruppe,

unter Openwrt wird die ash benutzt, die in vielen Beziehungen mit bash
vergleichbar ist. Was sagt mir die folgende Fehlermeldung:

(uci ist ein Programm, mit dem Variablen abgerufen werden können, der
Parameter -q unterdrückt Fehlermeldungen)

$([ $(uci -q get wireless.radio0.disabled) = 1 ] && \
echo "wifi disabled") || echo "wifi enabled"
ash: 1: unknown operand
wifi enabled

aber

$([ "$(uci -q get wireless.radio0.disabled)" == "1" ] && \
echo "wifi disabled") || echo "wifi enabled"
wifi enabled

Auch wenn ich statt = 1 mit -eq 1 teste, bekomme ich die Fehlermeldung.

Danke für alle Tipps.
Wolfgang
 

Lesen sie die antworten

#1 Johannes Knelangen
20/03/2011 - 13:42 | Warnen spam
Wolfgang Meiners writes:

Hallo Gruppe,

unter Openwrt wird die ash benutzt, die in vielen Beziehungen mit bash
vergleichbar ist. Was sagt mir die folgende Fehlermeldung:

(uci ist ein Programm, mit dem Variablen abgerufen werden können, der
Parameter -q unterdrückt Fehlermeldungen)

$([ $(uci -q get wireless.radio0.disabled) = 1 ] && \
echo "wifi disabled") || echo "wifi enabled"
ash: 1: unknown operand
wifi enabled



Ich nehme mal an wegen des einfachen "=".
Ist ja keine Zuweisung sondern ein Vergleich.
Wahrscheinlich klappt's deswegen mit "==".


aber

$([ "$(uci -q get wireless.radio0.disabled)" == "1" ] && \
echo "wifi disabled") || echo "wifi enabled"
wifi enabled

Auch wenn ich statt = 1 mit -eq 1 teste, bekomme ich die Fehlermeldung.

Danke für alle Tipps.
Wolfgang



lg,

Johannes Knelangen

Ähnliche fragen