Bash - WOL skript

marty

Bash - WOL skript
« kdy: 01. 11. 2012, 03:23:49 »
Ahoj, řeším následující problém...

Z cronu spouštím skript wakeup.sh. A za skriptem mám jaké PC budu chtít zapnout.
Kód: [Vybrat]
55 1 * * * /cesta/ke/scriptu/wakeup.sh JMENOPOCITACE1
Kód: [Vybrat]
#!/bin/bash
JMENOPOCITACE1="AA:BB:CC:DD:EE:F1"
JMENOPOCITACE2="AA:BB:CC:DD:EE:F2"

for pc in "$@"
do
  echo $pc
  wakeonlan $pc
done

Když skript zavolám, tak
Kód: [Vybrat]
./wapeup.sh JMENOPOCITACE1výsledek je:
Kód: [Vybrat]
wakeonlan JMENOPOCITACE1
Ale já bych potřeboval aby se skript provedl takto:
Kód: [Vybrat]
wakeonlan MACADRESAPOCITACE
Zkoušel jsem třeba:
Kód: [Vybrat]
wakeonlan $($pc)Tak to ale nejde.


Předem díky za jakoukoli radu :-)


kozec

Re:Bash - WOL skript
« Odpověď #1 kdy: 01. 11. 2012, 03:33:29 »
Kód: [Vybrat]
mac=$(eval echo \$$pc)
echo $mac

... napriklad

DgBd

  • ****
  • 279
    • Zobrazit profil
    • E-mail
Re:Bash - WOL skript
« Odpověď #2 kdy: 01. 11. 2012, 09:50:39 »
Bash už umí asociativní pole, takže třeba
Kód: [Vybrat]

declare -A PC
PC[karel]="AA:BB:CC"
PC[pepa]="EE:FF:00"

echo ${PC[karel]}

kagro

Re:Bash - WOL skript
« Odpověď #3 kdy: 01. 11. 2012, 20:03:45 »
Alebo skusit nieco taketo:

#!/bin/bash
JMENOPOCITACE1="AA:BB:CC:DD:EE:F1"
JMENOPOCITACE2="AA:BB:CC:DD:EE:F2"

for pc in "$@"
do
  echo ${!pc}
done