View Single Post
Old 20-09-2007, 00:21   #1
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Bash script: testare l'esistenza di un comando

Ciao bacarospi!

La mia mente malata ha appena partorito il primo script leggermente più complicato di un
Codice:
#!/bin/bash
echo "Ciao mondo"
Lo riporto qui di seguito:
Codice:
#!/bin/bash

# makehtml.sh
# Author: Gica78R
# This script takes all .c and .h source files in the
# current directory and generates the corresponding
# html files using the webcpp program. Output files
# will be stored in the html subdirectory. An eventually
# existing html subdirectory will be deleted.


DEST=html # destination directory

if [[ $# -gt 0 ]]
then
 echo "Non sono consentiti parametri"
 exit
fi

if [[ -e "${DEST}" ]]
then if [[ -d "${DEST}" ]]
     then
      echo "Rimuovo la vecchia directory \"${DEST}\""
      rm -Rf "${DEST}"
     else
      echo "\"${DEST}\" non è una directory. Rimuoverla manualmente e rieseguire lo script!"
      exit
     fi
else
 echo "La directory \"${DEST}\" non esiste, la creo"
fi

mkdir html

for arg in `ls *.c *.h`
do
 webcpp "${arg}" "${DEST}/${arg}.html" -l -m
done
exit
In pratica, come ho scritto con il mio fluentissimo inglese nei commenti, lo script prende tutti i file con estensione .c e .h e, con il comando webcpp, genera la corrispondente versione html.
Prima che faccia ciò, però, vorrei inserire il codice per controllare l'esistenza nel sistema, e in particolare nel PATH dell'utente che lancia lo script, del programma webcpp. Esiste un modo rapido per farlo? Se uso la condizione -e in un if credo controlli solo nella directory corrente; usando invece il pathname assoluto la cosa è poco pratica, perché su alcuni sistemi magari il programma è installato in una directory non standard...

Suggerimenti?
Grazie!
__________________
gica78r@ncc-1701:~$ tar -c
tar: Codardamente mi rifiuto di creare un archivio vuoto
Gica78R è offline   Rispondi citando il messaggio o parte di esso