<< home >>
Nesúvislé fragmenty z objavovania OS Linux
<<- ->>


  • Shell
Skriptujme v BASH shelli - prezentácia OpenOffice.org

#!/bin/sh

# Skriptík pre spúšťanie GUI aplikácii vytvorených v Kylix (IDE)
# z prostredia shellu
#
# Skriptík rieši problém knižníc:
# Error while loading shared libraries: XXXXX cannot open shared object file:
# No such file or directory

# Pasca pre signál INT (Ctrl-C)
trap 'printf "\n\a"; exit -1' INT

# Funkcia test existencie (-f) a vykonatelnosti (-x) zadanej aplikácie
existencia() {
  if [ -f "$meno_suboru" ] && [ -x "$meno_suboru" ]; then
    return 0
  else
    printf "Súbor %s neexistuje alebo nie je spustitelný\n\a" $meno_suboru
    exit -1
  fi
}

# Funkcia výpis potrebných knižníc
vypis_kniznic() {
  printf "\n"
  ldd ./"$meno_suboru"
  printf "\nStlač Enter pre štart aplikácie %s... " $meno_suboru
  read imaginarna_premenna_nikdy_nepouzita
}
 
# Funkcia helmuthovhelp
helmuthovhelp() {
  printf "\nSkriptík pre spúšťanie GUI aplikácii vytvorených v Kylix (IDE) z prostredia shellu\n"
  printf "\nPouži ./start_kylix_app.sh [-l] subor\n"
  printf "\n        -l ...... výpis požadovaných knižníc (nepovinný parameter)"
  printf "\n        -h ...... tento help"
  printf "\n        subor ... meno spustitelného súboru Kylix GUI aplikácie\n\n"
  exit 0
}

# Funkcia test vstupu
osetrenie_vstupu() {
  case "$#" in
   "0" ) helmuthovhelp;;
   "1" ) case "$1" in
          "-h" | "--h" | "-help" | "--help" ) helmuthovhelp;;
          * ) meno_suboru="$1"
              existencia "$meno_suboru";;
        esac;;
    * ) if [ "$1" = "-l" ]; then
          meno_suboru="$2"
          existencia "$meno_suboru"
          vypis_kniznic "$meno_suboru"
        else
          meno_suboru="$1"
          existencia "$meno_suboru"
        fi;;
  esac
}

##########################################################

# Nastavenie systémových premenných
export LD_LIBRARY_PATH=/usr/local/kylix3/bin
export PATH=$PATH:/usr/local/kylix3/bin:/usr/local/kylix3/lib

osetrenie_vstupu "$@"

# Parameter -ns pri spustení nezobrazí borlandovský pečatný vodoznak
./"$meno_suboru" -ns

exit 0

<<- ->>