fritzbox shell patternmatching

sir-rion

Neuer User
Mitglied seit
4 Nov 2007
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
ich hab folgendes problem mit einem shell script
PHP:
#!/bin/sh
var=1234aaaaaa5678
echo ${var/4*5/}

unter debian gibt mir das wie beabsichtigt 123678 aus
meine fritz box sagt mir

./tmp: line 3: syntax error: Bad substitution


(FRITZ!Box Fon WLAN 7170 Firmware-Version 29.04.67)

kann mir jemand dabei helfen das zum laufen zu bringen oder ein äquivalentes script zu schreiben?
 
Versuch mal, ob die Substitution überhaupt geht ....

Hi,

teste mal:

Code:
#!/bin/sh

var=1234aaaaaa5678 

var1=${var%4*}
var2=${var##*5}
echo ${var1}${var2}

Damit müsste man sehen, ob die Substitution überhaupt geht.
Ich denke, das wird Shell-abhängig sein.


LG

J.
 
Kannst du eine andere Busybox (freetz) nutzen? Bei mir geht es:

Code:
BusyBox v1.12.4 (2009-01-18 14:51:32 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben nicht umgelenkt
/var/mod/root # var=1234aaaaaa5678
/var/mod/root # echo ${var/4*5/}
123678
/var/mod/root #


Jörg
 
@Jano06
das geht :)

damit würd ich auch auf

PHP:
#!/bin/sh
var=1234aaaaaaaaa5678
echo ${var%4*}${var##*5}

zurückfallen da dies funktioniert :)


@MaxMuster

nein ich möchte gerne nicht unnötig viel an der fritz box modden wir hängen zu dritt dahinter am internet und wir können alle nicht damit leben auch nur einen halben tag auf internet verzichten zu können nicht nur weil wir freaks sind sondern weil wir es berufsmäßig/studiumsbedingt benötigen... wenn ich 2 fritz boxen hätte hätt ich längst versucht da n debian oder was auch immer draufzuziehen
 
Ist ja gut, wenn du eine Alternative hast. Ansonsten kann man (nur zur Vollständigkeit) auch eine neue Busybox nur dafür benutzen, auch ohne eine neue Firmware zu flaschen. Also z.B. eine andere busybox nach /var/tmp bringen und dann
Code:
/var/tmp/busybox sh <my_shell_script>
(oder das Programm auf einen USB-Stick und das von da aus aufrufen...)

Jörg
 
das geht natürlich

aber es geht ja auch so :))

falls es jemand haben mag mein scipt ist damit grade "fertig geworden"

irc client für die fritz box

Code:
#!/bin/sh
: ${2?"Usage: $0 ircserver nickname"}
touch ./tmp
(echo user shIRC hostname "$1" :shIRC user
echo nick "$2"
tail -f ./tmp &
while read command
	do case "$command" in
	/join*) echo "joining">/dev/tty
			set $command; currentchan="$2"
			echo "${command#?}";;
	/*) echo "${command#?}";;
	*) echo "PRIVMSG $currentchan :$command"
	esac
done) | nc "$1" 6667 | while read response
	do	case "$response" in
	"PING "*) echo "PONG ${response#?????}" >> ./tmp;;#response with PONG and strip PING
	*) echo ${response%%!*}${response#*PRIVMSG};#output with stripped userid
	esac
done
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.