Shell skript a výpis do pole

Shell skript a výpis do pole
« kdy: 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.

 
« Poslední změna: 27. 02. 2014, 14:07:29 od Petr Krčmář »
Nobody is perfect, but i'll try my best!


tatar

Re:Shell script array
« Odpověď #1 kdy: 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]}



Re:Shell script array
« Odpověď #2 kdy: 27. 02. 2014, 10:59:23 »
Jo to je presne ono. Dekuju za pomoc  :)
Nobody is perfect, but i'll try my best!

darkenik

Re:Shell script array
« Odpověď #3 kdy: 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

tatar

Re:Shell script array
« Odpověď #4 kdy: 27. 02. 2014, 13:01:55 »
zbytocne nezbytocne.... skript sa da napisat na 50 spobovo a moj funguje.