Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: dimmuboy 11 Listopadu 2011, 22:36:00
-
Zdravim,
mam tu skriptik ktory mi funguje v tty ale ked spustim samotny skript tak vypise
new.sh: 5: [[: not found
skrip:
#!/bin/bash
if [[ "`hddtemp /dev/sda -n`" = [0-9][0-9] ]]; then
echo "`hddtemp /dev/sda`";
fi
-
[[ je bashovská fičura, ujisti se že to fakt spouštíš bashem a ne sh
-
aha, veru pravda, a co to ma ako znamenat? preco to sh nezhltne?
-
aha, veru pravda, a co to ma ako znamenat? preco to sh nezhltne?
Protože Dash není Bash ;) Mimochodem k čemu je tato podmínka dobrá, resp. co jí řešíš?
-
je to skript pre conky aby mi zobrazovalo teplotu externeho disku ked ho pripojim
-
Takže podmínkou pro zjištění, zda je disk připojen je dvouciferné číslo na výstupu z hddtemp? Navíc hddtemp se musí spouštět pod rootem, nebo mu musíš nastavit výjimku pro sudo, nebo to řešit dalšími způsoby :), což je zbytečné, protože conky to umí i bez těchto úprav.
Já osobně řeším detekci připojených externích disků přes obsah adresáře /media/, kam se mi automaticky připojují, teplotu disku umí conky sám a bez roota. Z terminálu jde vypsat teplotu i takto, pokud je spuštěn démon hddtemp(který se startuje po instalaci automaticky se systémem):
netcat localhost 7634|sed 's/||/\n|/g'|grep sda|cut -d '|' -f4
-
ja to mam uz vyriesene takto
if [[ "`hddtemp /dev/sda -n 2>/dev/null`" = [0-9][0-9] ]]; then
echo "`hddtemp /dev/sda | cut -d ':' -f 2- | cut -c 2-`";
fi
Viem ze sa to da aj cez netcat ale mne funguje hddtemp aj bez roota, zda sa mi ze som to niekde konfiguroval ale nie som si isty a vo visudo vynimku nema. Okrem toho chcem aby mi zistoval mountnute disky cez /dev/sd* kvoli tomu ze mi na disku ktory pripajam cez eSATA konektor nefunguje automount a neviem to vyriesit. Viem ze ho musim aj tak mountnut, ale takto riesene mi to pride jednoduchsie i ked trochu vulgarne :D
-
Pokud ti jde o fyzické disky v /dev/, můžeš přeci rovnou testovat na existenci ten konkrétní soubor - tedy ve tvém příkladu /dev/sda. Pokud bys to chtěl řešit dynamicky, není problém si vylistovat /dev/sd. , třeba vyházet ze seznamu ty, které máš připojené stále a řešíš staticky, a pro zbytek zobrazit info, které tě zajímá.
-
Jinak automatický mount jde řešit přes pravidla udev, ale chce to trochu studia.
-
ja viem.. studoval som to aj trochu ale bohuzial bevysledne.. nic mi nefungovalo a nasiel som akurat vela diskusii o tom ako eSATA nemountuje automaticky :/
-
Když už přistoupím na tvé řešení, tak takto se mi to zdá snesitelnější:
[ -e /dev/sda ] && hddtemp /dev/sda | cut -d ' ' -f2-
-
to GdH: inak cital som ze mas na tvojej stranke odkaz na conkyHardcore, mas to oskusane? a nevies mi poradit s tymto? ...topic=58747 (http://forum.ubuntu.cz/index.php?topic=58747)
-
to GdH: inak cital som ze mas na tvojej stranke odkaz na conkyHardcore, mas to oskusane? a nevies mi poradit s tymto? ...topic=58747 (http://forum.ubuntu.cz/index.php?topic=58747)
Promiň, Conky Hardcore už je delší dobu mrtvola, link jsem odstranil, a conkyEmail jsem nikdy nepoužíval, GMail jsem vybíral příkazem z BASHe, takže s tím ti bohužel neporadím.
-
aha, fajn aspon viem ze uz sa tym nemam zaoberat :)