Sida 1 av 1

Script för att underlätta att få igång huawei e220 3G-modem

Postat: 26 maj 2008, 15:48
av HenrikAn
Jag hade tänkt mig något i stil med:

Kod: Markera allt

#!/bin/sh

# /etc/udev/rules.d/99-huawei.rules
if [ -s /etc/udev/rules.d/99-huawei.rules ]
then
    echo "Filen /etc/udev/rules.d/99-huawei.rules existerar redan."
else
    sudo echo "SUBSYSTEM=="block", \
ACTION=="add", \
SYSFS{idVendor}=="12d1", \
SYSFS{idProduct}=="1003", \
RUN+="/sbin/modprobe usbserial vendor=0×12d1 product=0×1003", \
OPTIONS="ignore_device" > /etc/udev/rules.d/99-huawei.rules
    echo "Filen /etc/udev/rules.d/99-huawei.rules är nu skapad."
    echo "Glöm inte att ta bort och sätta tillbaks modemet!"
fi

# 3G profiles

# tele2
if [ -s $HOME/.vmc2/mobile-profiles/tel2_3G ]
then
    echo "Inställningsfilen tele2_3G existerar redan"
else
    echo "Profile name = tele2_3G
username = 3G
password = internet
Preferred connection = 3G only
Authentication mode = default
APN host = internet.tele2.se" > $HOME/.vmc2/mobile-profiles/tele2_3G
    echo "Inställningsfilen tele2_3G är nu skapad."
fi

# Telia
if [ -s $HOME/.vmc2/mobile-profiles/Telia_3G ]
then
    echo "Inställningsfilen Telia_3G existerar redan"
else
    echo "Profile name = Telia_3G
username = 3G
password = internet
Preferred connection = 3G only
Authentication mode = default
APN host = online.telia.se" > $HOME/.vmc2/mobile-profiles/Telia_3G
    echo "Inställningsfilen Telia_3G är nu skapad."
fi

#3
if [ -s $HOME/.vmc2/mobile-profiles/tre_3G ]
then
    echo "Inställningsfilen tre_3G existerar redan"
else
    echo "Profile name = tre_3G
username = 3G
password = internet
Preferred connection = 3G only
Authentication mode = default
APN host = data.tre.se" > $HOME/.vmc2/mobile-profiles/tre_3G
    echo "Inställningsfilen tre_3G är nu skapad."
fi

echo "Allt klart! :)"

Men det skiter sig ju redan på rad 8 (antar jag) då det är en hel massa dubbelfnuttar med i det som ska in i filen...

Vad göra?
Finns det något smartare sätt? (Jag vill undvika att man ska vara uppkopplad när man kör själva scriptet)

Re: Script för att underlätta att få igång huawei e220 3G-modem

Postat: 26 maj 2008, 16:50
av Konservburk
Om du vill ha in dubbelfnuttarna i filen så måste du escapa dem, antingen genom att sätta allt inom enkelfnuttar eller genom sätta ett backslash framför varje dubbelfnutt. Men hela escape-metoden kan lätt bli väldigt komplicerad, speciellt om man vill ha med både enkel- och dubbelfnuttar och kanske också bakåtfnuttar och dollartecken och backslash. Man kan med fördel istället använda något som kallas för here-document för att slippa allt strul med escapeande:

Kod: Markera allt

cat <<\EOF >din_fil 
a
"b"
c
EOF
Och motsvarande med sudo:

Kod: Markera allt

sudo tee din_fil <<\EOF >/dev/null
a
"b"
c
EOF

Re: Script för att underlätta att få igång huawei e220 3G-modem

Postat: 26 maj 2008, 21:38
av HenrikAn
Tack!
Då har man lärt sig något nytt även idag! :)

Så här blev det:

Kod: Markera allt

#!/bin/sh

# /etc/udev/rules.d/99-huawei.rules
if [ -s /etc/udev/rules.d/99-huawei.rules ]
then
    echo "Filen /etc/udev/rules.d/99-huawei.rules existerar redan."
else
    sudo tee /etc/udev/rules.d/99-huawei.rules <<\EOF >/dev/null
SUBSYSTEM=="block", \
ACTION=="add", \
SYSFS{idVendor}=="12d1", \
SYSFS{idProduct}=="1003", \
RUN+="/sbin/modprobe usbserial vendor=0×12d1 product=0×1003", \
OPTIONS="ignore_device" 
EOF
    echo "Filen /etc/udev/rules.d/99-huawei.rules skapades."
    echo "Glöm inte att ta bort och sätta tillbaks modemet!"
fi

# 3G profiles

if [ -s $HOME/.vmc2/mobile-profiles/ ]
then
    echo "Katalogen $HOME/.vmc2/mobile-profiles existerar redan!"
else
    echo "Katalogen $HOME/.vmc2/mobile-profiles skapades."
    mkdir -p $HOME/.vmc2/mobile-profiles
fi

# tele2
if [ -s $HOME/.vmc2/mobile-profiles/tele2_3G ]
then
    echo "Inställningsfilen tele2_3G existerar redan"
else
    cat <<\EOF >$HOME/.vmc2/mobile-profiles/tele2_3G
Profile name = tele2_3G
username = 3G
password = internet
Preferred connection = 3G only
Authentication mode = default
APN host = internet.tele2.se
EOF
    echo "Inställningsfilen tele2_3G skapades."
fi

# Telia
if [ -s $HOME/.vmc2/mobile-profiles/Telia_3G ]
then
    echo "Inställningsfilen Telia_3G existerar redan"
else
    cat <<\EOF >$HOME/.vmc2/mobile-profiles/Telia_3G
Profile name = Telia_3G
username = 3G
password = internet
Preferred connection = 3G only
Authentication mode = default
APN host = online.telia.se
EOF
    echo "Inställningsfilen Telia_3G skapades."
fi

#3
if [ -s $HOME/.vmc2/mobile-profiles/tre_3G ]
then
    echo "Inställningsfilen tre_3G existerar redan"
else
    cat <<\EOF >$HOME/.vmc2/mobile-profiles/tre_3G
Profile name = tre_3G
username = 3G
password = internet
Preferred connection = 3G only
Authentication mode = default
APN host = data.tre.se
EOF
    echo "Inställningsfilen tre_3G skapades."
fi

#Telenor
#if [ -s $HOME/.vmc2/mobile-profiles/Telenor_3G ]
#then
#    echo "Inställningsfilen tele2_3G existerar redan"
#else
#    echo "Något här..."
#    echo "Inställningsfilen Telenor_3G är nu skapad."
#fi

echo "Allt klart! :)"
Återstår bara att testa om det fungerar och går att använda på ett nybörjarvänligt sätt...