Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: timeout v bashi  (Přečteno 1049 krát)

Avogadrus

  • Návštěvník
  • *
  • Příspěvků: 77
    • Zobrazit profil
timeout v bashi
« kdy: 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".
U12.04; jádro neznámé; XFCE 4.10

pacholik

  • Závislák
  • ****
  • Příspěvků: 2072
    • Zobrazit profil
Re:timeout v bashi
« Odpověď #1 kdy: 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

 


Provoz zaštiťuje spolek OpenAlt.