[linux] bash programovanie - timeout a defaultna odpoved

Ing. Jan ONDREJ jan.ondrej na upjs.sk
Sobota Prosinec 10 08:41:32 CET 2005


On Sat, Dec 10, 2005 at 12:45:28AM +0100, Jan Kunder wrote:
> 
> Ahoj.
> 1)
> Hoci som sa snazil, nedokazal som vygooglit, ako dosiahnut toto:
> bash-script (z brucha):
> echo "Question: Saving private Ryan? Y/N"
> if Y then save
> if N then goto end :) else echo "Ty blb vyber si Y alebo N"
> 
> Problem: Ak user neodpovie do 10 sekund urob Y.
> Ak user odpovie cokolvek ine "nepusti ho dalej", kym nezmackne Y/N al. 
> neprejde cas X

#!/bin/bash

echo "Question: Saving private Ryan? Y/N"
while true; do
  read -t 10 q
  if [ "$q" = "Y" ]; then
    echo "Saving Ryan ..."
    break
  elif [ "$q" = "N" ]; then
    break
  fi
  echo "Ty blb vyber si Y alebo N"
done

# velmi skaredo sa tu miesa slovencina a anglictina, ale snazil som
# sa plne vyhoviet poziadavke, takze som pouzil originalne texty. :)

> 2)
> nieco ako prikazy pause / break z DOSu, proste PRESS ANY KEY TO CONTINUE

echo "PRESS ANY KEY TO CONTINUE"
read -n 1 -s

> 2B) Existuje nejaka ina finta na "debugovanie" bash-scriptu, ako vkladat 
> tam nejake break-y ?

Pustaj ho cez "sh -x skript" alebo pridaj niekde do kodu:
  set -x
Vypnutie debug:
  set +x

		SAL



Další informace o konferenci linux