Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Jirka_V 27. 02. 2014, 09:59:38
-
Zdravim, pohravam si momentalne s shell scriptovanim. Vytvarim maly script ktery by mi vypsal obsah slozky do pole zobrazil pole a ja si z nej pak mohl vybrat a ten dany soubor tailovat.
Aktualne to mam na prasaka udelane na tvrdo takze menu ze ktere ho si vyberu 1-35 a to mi pak hodi tail -n 500 -f /opt/app/log/app1-35.log
Rad bych to predelal do trochu cistci formy a zaroven bych scriptit pak chtel pouzit i na jinych strojich aniz bych tam pokazde musel prepisovat cesty k logum. Ovsem nejsem si moc jisty jak to provest korektne.
Zkousel jsem vlozit obsah do pole pomoci array=($(ls /opt/app/log/*.log)) a zobrazit pomoci echo ${array
Ovsem dal si nevim rady jak vypsat ocislovane jednotlive soubory v seznamu ne zasebou a pak si z nej vybrat ktery soubot bych tailoval.
Budu rad za kazde nasmerovani radu jsem ve Shell scriptovani uplny zacatecnik.
-
ak som to spravne pochopil tak narychlo
array=($(ls /opt/app/log/*.log))
for i in `seq 1 ${#array[zavinac]}`
do
echo $i ${array[$i]}
done
read cislo
tail -n 500 -f ${array[$cislo]}
-
Jo to je presne ono. Dekuju za pomoc :)
-
tu je celkom vhodne pouzit shellovsku funkciu select.
array=( /opt/app/log/*.log ) ; # tu je zbytocne pouzivat ls, staci vyuzit shell expanziu
select file in ${array[zavinac]}; do
ls -la ${file};
tail -10 ${file};
break;
done
-
zbytocne nezbytocne.... skript sa da napisat na 50 spobovo a moj funguje.