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: Avogadrus 28 Března 2012, 10:46:10

Název: timeout v bashi
Přispěvatel: Avogadrus 28 Března 2012, 10:46:10
Zdravím pánové a případné dámy. Mám takový menší problém, potřebuju spustit case s možností výběru a následným timeoutem v ksh, nepadlo mě viz kod.
Kód: [Vybrat]
#!/bin/ksh
spusteni() {
while true; do
  clear
  if [ $(uname -n) = "konkrétní_masina" ]; then
  echo "Vyberte prosim kterou verzi si prejete spustit";echo "1) ostra"; echo "2) testovaci";   
  read volba   
  case $volba in
1) cesta_k_ostre;break;;
2) cesta_k_testovaci_a_nastaveni_promenych";break;;
*) echo "Mozne volby jsou pouze 1 a 2. Vyckejte 5 sekund pro znovuvyvolani dotazu. ";sleep 5;;
  esac
  else
   cesta_k_ostre;break
  fi
done
}

time_out() {
sleep 15
if ps -p $1 ; then
  kill $1;wait $1 &> /dev/null;cesta_k_ostre
fi
}

spusteni&
pid=$!
time_out $pid&
fg %1
a chování není to co sem si představoval, case se překresluje, ale nejde vybrat volba a při dojití času se spustí ostrá verze s tím že se okamžitě ukončí. Napadá někoho jak to řešit jinak? A kontrolní otázka když volám funkce na pozadí je to samostaný job? když jsem si nechal vypsal "jobs" byl prázný a proto by nefungoval "fg %1" tudíž ani možnost volby v "spusteni".
Název: Re:timeout v bashi
Přispěvatel: pacholik 28 Března 2012, 23:54:35
nejde ti vybírat právě proto že to máš na pozadí, použij spíš timeout
Kód: [Vybrat]
man timeout