markvienna
Hacker
- Registriert
- 12. April 2014
- Beiträge
- 401
- Reaktionspunkte
- 124
- Punkte
- 103
Hallo
Aus gegebenen Anlass wollte ich einen Script schreiben der die SNR von meinen Sendern in meinem Favoriten Bouquet misst.
Leider scheitere ich am Array - unter Debian laufen sie aber nicht auf der VU Duo VTI neueste version
Bitte um Hilfe
Fehler
Alternativ habe ich es so probiert:
nachher wollte ich die liste so laden
Ausgeführt reisst es diesen error
root@vuduo2:~# ./serc.sh
./serc.sh: line 10: syntax error: unexpected "("
die service.xml habe ich per API geladen.
ich bin ratlos - irgendwas ist anders auf der box als auf einem normalen linux server.
Aus gegebenen Anlass wollte ich einen Script schreiben der die SNR von meinen Sendern in meinem Favoriten Bouquet misst.
Leider scheitere ich am Array - unter Debian laufen sie aber nicht auf der VU Duo VTI neueste version
Bitte um Hilfe
Code:
#!/bin/bash
array="1:0:19:132F:3EF:1:C00000:0:0:0:
1:0:19:4331:300C:13E:820000:0:0:0:
1:0:19:283D:3FB:1:C00000:0:0:0:
"
for i in ${array[*]}
do
wget -O - -q http://127.0.0.1//web/zap?$i
sleep 20
wget -O - -q http://127.0.0.1/web/getcurrent | grep "\(<\|</\)e2servicename" | tr -d '\n' | sed "s/.*<e2servicename>\(.*\)<\/e2servicename.*/\\1\n/" >> signal.txt
wget -O - -q http://127.0.0.1/web/signal?AGC= | grep "\(<\|</\)e2snr" | tr -d '\n' | sed "s/.*<e2snr>\(.*\)<\/e2snr.*/\\1\n/" >> signal.txt
wget -O - -q http://127.0.0.1/web/signal?AGC= | grep "\(<\|</\)e2acg" | tr -d '\n' | sed "s/.*<e2acg>\(.*\)<\/e2acg.*/\\1\n/" >> signal.txt
done
exit
Fehler
oot@vuduo2:~# ./check.sh
./check.sh: line 7: syntax error: bad substitution
./check.sh: line 7: syntax error: bad substitution
Alternativ habe ich es so probiert:
Code:
#!/bin/sh
array=( 1:0:19:132F:3EF:1:C00000:0:0:0: 1:0:19:4331:300C:13E:820000:0:0:0: 1:0:19:283D:3FB:1:C00000:0:0:0: )
for i in "${array[@]}"
do
wget -O - -q http://127.0.0.1//web/zap?$i
sleep 20
wget -O - -q http://127.0.0.1/web/getcurrent | grep "\(<\|</\)e2servicename" | tr -d '\n' | sed "s/.*<e2servicename>\(.*\)<\/e2servicename.*/\\1\n/" >> signal.txt
wget -O - -q http://127.0.0.1/web/signal?AGC= | grep "\(<\|</\)e2snr" | tr -d '\n' | sed "s/.*<e2snr>\(.*\)<\/e2snr.*/\\1\n/" >> signal.txt
wget -O - -q http://127.0.0.1/web/signal?AGC= | grep "\(<\|</\)e2acg" | tr -d '\n' | sed "s/.*<e2acg>\(.*\)<\/e2acg.*/\\1\n/" >> signal.txt
done
exit
nachher wollte ich die liste so laden
Code:
root@vuduo2:~# cat serc.sh
#!/bin/bash
# Parse speed values between tag and write output to temporary file
awk '/<e2service>/,/<\/e2service>/{if(/<e2servicereference|<e2servicereference/){gsub(/.*="|"\/>/,x);print}}' service.xml >service.tmp
# Create array
# arr=( $( < service.tmp ) )
# OR you can use cut command for specific column into an Array instead of entire line may be useful in future
arr=( $( < <(cut -f1 service.tmp ) ) )
# delete temporary file created using awk
# rm -f service.tmp
# Print Array Elements
for i in $(seq 0 $((${#arr[@]} - 1)))
do
echo ${arr[$i]}
done
Ausgeführt reisst es diesen error
root@vuduo2:~# ./serc.sh
./serc.sh: line 10: syntax error: unexpected "("
die service.xml habe ich per API geladen.
ich bin ratlos - irgendwas ist anders auf der box als auf einem normalen linux server.
Zuletzt bearbeitet von einem Moderator: