ShellUnix

Un article de Agora2ia.

Sommaire

Tips

Change directory with variable

Pour pouvoir utiliser une variable avec la commande cd il ne faut pas mettre de quotes dans la définition :

Ceci fonctionne :

 export PROJECT_HOME=/home/jcouvreur/project/workspace/module
 ...
 cd $PROJECT_HOME
 

Ceci NE fonctionne PAS :

 export PROJECT_HOME='/home/jcouvreur/project/workspace/module'
 ...
 cd $PROJECT_HOME
 


Ouvrir une page web

Pour ouvrir la page http://localhost:8080/my_project/ :

xdg-open http://localhost:8080/my_project/

Voir aussi : http://www.dwheeler.com/essays/open-files-urls.html


Lancer une commande après un délais

Pour ouvrir une page web dans 10 secondes :

sleep 10 && xdg-open http://localhost:8080/my_project/


Lancer une commande en tache de fond / asynchrone

Pour lancer en tâche de fond l'ouverture d'une page web :

sleep 10 && xdg-open http://localhost:8080/my_project/ &


Boucle IF

Attention, la synthaxe change selon la nature du shell (Shell, Bash...).

 if [ 'build' = "$1" ] 
 then
 	echo "First argument was BUILD..."
 	mvn clean install
 else
 	echo "Project build was shunted."
 fi
 


Exemple

Exemple de script Shell Unix :

 #!/bin/sh
 #
 # Script de demarrage/arret d'un serveur Gabi
 #
 
 GABI_HOME=/AGFAM/DEV/WEB_APP4/GABI/APP1
 GABI_SERVER_NAME=gabi-server
 
 PIDS=`/usr/ucb/ps -auxwww | grep ${GABI_SERVER_NAME} | grep -v grep | awk '{print $2}'`
 
 # Procedure pour tuer des process
 killgabiservers() {
         if [ "$1" = "-9" ]
         then
                 killopt=$1
                 shift
         fi
         [ "$PIDS" != "" ] && kill $killopt $PIDS >/dev/null 2>&1
 }
 
 case "$1" in
   'start')
         echo "Starting Gabi server..."
     cd $GABI_HOME
         java -jar `ls | grep ${GABI_SERVER_NAME}` &
         ;;
 
   'stop')
         echo "Stopping Gabi servers..."
     killgabiservers
         ;;
 
   'fstop')
         echo "Killing Gabi servers"
         killgabiservers -9
         ;;
 
   'status')
         if [ -z "${PIDS}" ]
         then
                 echo "Status Gabi server : OFF"
                 exit 0
         else
                 echo "Status Gabi server : ON"
                 exit 1
         fi
         ;;
 *)
         echo "Usage: $0 { start | stop | fstop | status}"
         ;;
 esac
 exit 0