Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Jirka_V 27. 02. 2014, 09:59:38

Název: Shell skript a výpis do pole
Přispěvatel: 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.

 
Název: Re:Shell script array
Přispěvatel: tatar 27. 02. 2014, 10:39:30
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]}


Název: Re:Shell script array
Přispěvatel: Jirka_V 27. 02. 2014, 10:59:23
Jo to je presne ono. Dekuju za pomoc  :)
Název: Re:Shell script array
Přispěvatel: darkenik 27. 02. 2014, 11:27:59
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
Název: Re:Shell script array
Přispěvatel: tatar 27. 02. 2014, 13:01:55
zbytocne nezbytocne.... skript sa da napisat na 50 spobovo a moj funguje.