Fehler in Shell script Im Unterforum Hardware, Betriebssysteme, Programmiersprachen - Beschreibung: Alles zu Software, Hardware, Windows, Linux, Programmiersprachen
Anfragen zu Modding, Games, Cracks, etc. unerwünscht.
Elektronik- und Elektroforum Forum Index >>
Hardware, Betriebssysteme, Programmiersprachen
Hardware, Betriebssysteme, Programmiersprachen : Alles zu Software, Hardware, Windows, Linux, Programmiersprachen
Anfragen zu Modding, Games, Cracks, etc. unerwünscht. |
Autor |
|
|
|
BID = 880973
wulf Schreibmaschine
Beiträge: 2246 Wohnort: Bozen
|
|
Hallo,
ich bin's mal wieder. Diesmal hab ich ein Problem in einem Shell Script und finde den Fehler einfach nicht. Ich starre aber auch schon viel zu lange in die selben Codestücke.
Vielleicht kann von euch jemand drüberschauen und eventuell weiterhelfen.
Der Fehler:
Code : |
./uniweb.sh: line 77: 1: not found
|
|
Zeile 77 ist im Skript folgendes:
Ich kann mir den Fehler einfach nicht erklären.
Hier das gesamte Skript (uniweb.sh):
Code : |
#!/bin/sh
################################### CONSTANTS ##################################
### Main ###
CHECK_INTERVAL=10
### Check connection function ###
PING_MAXLOSS=50 #maximum loss allowed
PING_COUNT=10 #number of pings
PING_INTERVAL=25 #interval between pings in milliseconds
PING_URL=8.8.8.8 #URL to ping
################################### VARIABLES ##################################
ETH_TYPE="dhcp"
WIRELESS_TYPE="dhcp"
####### RELEVANT DEFAULT VARIABLES FROM /etc/uniweb.conf - TO NOT TOUCH ########
### WAN CONFIGURATION ###
# Ethernet static
ETH_STATIC_IPADDR="192.168.2.5"
ETH_STATIC_NETMASK="255.255.255.0"
ETH_STATIC_GATEWAY="192.168.2.1"
ETH_STATIC_DNS="208.67.222.222 208.67.220.220"
# Ethernet PPPoE
ETH_PPPOE_SERVICE="pppoe"
ETH_PPPOE_USERNAME="testuser"
ETH_PPPOE_PASSWORD="testuser"
ETH_PPPOE_KEEPALIVE="10"
# Wireless Layer 1
WIRELESS_HWMODE="11g"
# Wireless Layer 2
WIRELESS_SSID="ebninet-gamma"
WIRELESS_ENCRYPTION="psk2"
WIRELESS_KEY="moritz2507"
# Wireless static
WIRELESS_IPADDR="192.168.2.15"
WIRELESS_NETMASK="255.255.255.0"
WIRELESS_GATEWAY="192.168.2.1"
WIRELESS_DNS="208.67.222.222 208.67.220.220"
# UMTS
UMTS_PIN="1234"
UMTS_APN="web"
UMTS_USERNAME="web@telering.at"
UMTS_PASSWORD="web"
################################## FUNCTIONS ###################################
### check connection ###
check () {
PING_OUTPUT=`fping -q -c $PING_COUNT -p $PING_INTERVAL $PING_URL 2>&1`
#extract sent packet number (is zero at problems (net unreachale, ...))
PING_PACKETS_VAR1=`echo "$PING_OUTPUT" | egrep -o "xmt/rcv/%loss = [0-9]{1,2}/"`
PING_PACKETS_VAR2=`echo "$PING_PACKETS_VAR1" | egrep -o "[0-9]{1,2}"`
if [ "$PING_PACKETS_VAR2" -ne "$PING_COUNT" ] ; then
return 1
fi
#extract packet loss
PING_VAR1=`echo "$PING_OUTPUT" | egrep -o "/[0-9]]{1,3}%"`
PING_VAR2=`echo "$PING_VAR1" | egrep -o "[0-9]{1,3}"`
if [ $PING_VAR2 -le $PING_MAXLOSS ] ; then
return 0
else
return 1
fi
}
### interface ETH ###
interface_eth_up () {
if [ "$ETH_TYPE" == "static" ] ; then
uci delete network.eth.service > /dev/null 2>&1
uci delete network.eth.username > /dev/null 2>&1
uci delete network.eth.password > /dev/null 2>&1
uci delete network.eth.keepalive > /dev/null 2>&1
uci set network.eth.proto="static"
uci set network.eth.ipaddr="$ETH_STATIC_IPADDR"
uci set network.eth.netmask="$ETH_STATIC_NETMASK"
uci set network.eth.gateway="$ETH_STATIC_GATEWAY"
uci set network.eth.dns="$ETH_STATIC_DNS"
uci commit
ifconfig eth0 up
sleep 1
elif [ "$ETH_TYPE" == "pppoe" ] ; then
uci delete network.eth.ipaddr > /dev/null 2>&1
uci delete network.eth.netmask > /dev/null 2>&1
uci delete network.eth.gateway > /dev/null 2>&1
uci delete network.eth.dns > /dev/null 2>&1
uci set network.eth.proto="pppoe"
uci set network.eth.service="$ETH_PPPOE_SERVICE"
uci set network.eth.username="$ETH_PPPOE_USERNAME"
uci set network.eth.password="$ETH_PPPOE_PASSWORD"
uci set network.eth.keepalive="$ETH_PPPOE_KEEPALIVE"
uci commit
ifconfig eth0 up
sleep 15
else #dhcp
uci delete network.eth.ipaddr > /dev/null 2>&1
uci delete network.eth.netmask > /dev/null 2>&1
uci delete network.eth.gateway > /dev/null 2>&1
uci delete network.eth.dns > /dev/null 2>&1
uci delete network.eth.service > /dev/null 2>&1
uci delete network.eth.username > /dev/null 2>&1
uci delete network.eth.password > /dev/null 2>&1
uci delete network.eth.keepalive > /dev/null 2>&1
uci set network.eth.proto="dhcp"
uci commit
ifconfig eth0 up
sleep 7
fi
}
interface_eth_down () {
ifconfig eth0 down
}
### interface WIRELESS ###
interface_wireless_up () {
uci set wireless.radio0.hwmode="$WIRELESS_HWMODE"
uci set wireless. äht wifi-iface[0].ssid="$WIRELESS_SSID" (automatisch editiert wegen spamgefahr)
uci set wireless. äht wifi-iface[0].encryption="$WIRELESS_ENCRYPTION" (automatisch editiert wegen spamgefahr)
uci set wireless. äht wifi-iface[0].key="$WIRELESS_KEY" (automatisch editiert wegen spamgefahr)
if [ "$ETH_TYPE" == "static" ] ; then
uci set network.wireless.proto="static"
uci set network.wireless.ipaddr="$ETH_STATIC_IPADDR"
uci set network.wireless.netmask="$ETH_STATIC_NETMASK"
uci set network.wireless.gateway="$ETH_STATIC_GATEWAY"
uci set network.wireless.dns="$ETH_STATIC_DNS"
uci commit
wifi up radio0
sleep 5
else #dhcp
uci delete network.wireless.ipaddr > /dev/null 2>&1
uci delete network.wireless.netmask > /dev/null 2>&1
uci delete network.wireless.gateway > /dev/null 2>&1
uci delete network.wireless.dns > /dev/null 2>&1
uci set network.wireless.proto="dhcp"
uci commit
wifi up radio0
sleep 15
fi
}
interface_wireless_down () {
wifi down radio0
}
### interface UMTS ###
interface_umts_up () {
ifup umts
sleep 10
}
interface_umts_down () {
ifdown umts
}
################################### UNIWEB #####################################
### init ###
# copy the config file into /tmp for use (To decrease writing cycles to flash
# done by the web interface and use temporary file instead. The web interface
# can write to the /etc/uniweb.conf by using a special function)
cp /etc/uniweb.conf /tmp/uniweb.conf
# bring down all interfaces
interface_eth_down
interface_wireless_down
interface_umts_down
sleep 5
### main ###
# main loop
while [ true ] ; do
source /tmp/uniweb.conf
check
CONNECTED="$?"
if [ "$CONNECTED" -eq "0" ] ; then
echo "connection good"
sleep $CHECK_INTERVAL
else
#bring down all interfaces
interface_eth_down
interface_wireless_down
interface_umts_down
#interface eth static
if $ETH_STATIC ; then
echo "--> ETH STATIC try:"
ETH_TYPE="static"
interface_eth_up
check
CONNECTED="$?"
if $CONNECTED ; then
echo "connected"
continue
fi
interface_eth_down
fi
#interface eth dhcp
if $ETH_DHCP ; then
echo "--> ETH DHCP try:"
ETH_TYPE="dhcp"
interface_eth_up
check
CONNECTED="$?"
if $CONNECTED ; then
echo "connected"
continue
fi
interface_eth_down
fi
#interface eth pppoe
if $ETH_PPPOE ; then
echo "--> ETH PPPOE try:"
ETH_TYPE="pppoe"
interface_eth_up
check
CONNECTED="$?"
if $CONNECTED ; then
echo "connected"
continue
fi
interface_eth_down
fi
#interface wireless static
if $WIRELESS_STATIC ; then
echo "--> WIRELESS STATIC try:"
WIRELESS_TYPE="static"
interface_wireless_up
check
CONNECTED="$?"
if $CONNECTED ; then
echo "connected"
continue
fi
interface_wireless_down
fi
#interface wireless dhcp
if $WIRELESS_DHCP ; then
echo "--> WIRELESS DHCP try:"
WIRELESS_TYPE="dhcp"
interface_wireless_up
check
CONNECTED="$?"
if $CONNECTED ; then
echo "connected"
continue
fi
interface_wireless_down
fi
#interface umts
if $UMTS ; then
echo "--> UMTS try:"
interface_umts_up
check
CONNECTED="$?"
if $CONNECTED ; then
echo "connected"
continue
fi
interface_umts_down
fi
fi
done
|
|
Vielen Dank im Voraus.
Simon
_________________
Simon
IW3BWH |
|
BID = 881947
clembra Inventar
Beiträge: 5404 Wohnort: Weeze / Niederrhein
|
|
Hallo wulf,
in der Zeile kann ich auch keinen Fehler feststellen, es seid denn, der Funktionsname ist bereits bekannt. Das könnte eine bereits früher deklarierte Funktion oder auch ein Programm im PATH mit dem Namen sein.
Ansonsten ein Hinweis zur nächsten Zeile, test, wofür die eckigen Klammern eine Abkürzung sind, verwendet für Stringvergleiche nur ein einfaches Gleich-Zeichen. Je nach Shell und test-Version funktionieren zwar auch doppelte, sicherer ist es aber mit nur einem.
_________________
Reboot oder be root, das ist hier die Frage. |
|
BID = 882645
wulf Schreibmaschine
Beiträge: 2246 Wohnort: Bozen
|
Hallo,
es war tatsächlich ein Hardlink auf ein Programm im Path. Vielen Dank für die zündende Idee. Das Programm läuft jetzt (nachdem ich die ganzen Anderen Fehler korrigiert habe).
_________________
Simon
IW3BWH
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag heute wurden bisher 12 Beiträge verfasst © x sparkkelsputz Besucher : 182415342 Heute : 7328 Gestern : 7797 Online : 369 27.11.2024 22:56 3 Besucher in den letzten 60 Sekunden alle 20.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0270230770111
|