Bonjour.
Je me suis écrit un script de managment pour un accès rapide à mes projets.
C’est un script relativement simple faisant appel à la commande 'name à laquelle on passe la longueur de la chaîne grâce à la commande ‹ random › pour générer un nom et qui lit la liste des projets dans un répertoire « Projects »
Ici on appelle computerman version 5 qui démarre automatiquement en mode Manager et on peut remplacer ces appel par emacs.
Voici le script :
#!/bin/bash
declare Response=;
declare Name=;
if [ ! -d Projects ]; then
mkdir Projects ;
fi;
declare -a Projects=(`ls Projects`) ;
declare Max="`ls Projects | cat -n | tail -1 | awk '{print $1}'`";
declare Min="0";
declare Exist="False";
declare Index=0 ;
let Max=Max-1;
echo "create and maintain your projects ;"
echo "iam version 1"
date
echo "enter the name of project or"
echo "try 'no' to skip or"
echo "try 'yes' for to create project."
echo "try 'exit' to quit."
while (true) do
#echo ${Projects[@]} ;
#echo "Max=$Max" ;
#echo "Min=$Min" ;
#if [ ! $Max == 0 ]; then
for I in $(seq 0 $Max); do
echo ${Projects[$I]} ;
done;
#fi;
declare Count=`random` ;
Name=`name $Count`;
echo "am i $Name?" ;
read Response ;
if [ \"$Response\" = "\"yes\"" ]; then
echo "yes!" ;
mkdir Projects/$Name ;
declare -a Projects=(${Projects[@]} $Name) ;
cd Projects/$Name ;
tar -x -v -f computerman-18.1.5b.tar
make -C computerman-18.1.5b head tail clean mrproper all
cp computerman-18.1.5b/bin/cpu ~/bin
./computerman-18.1.5b/bin/computerman
cd ..
cd ..
elif [ \"$Response\" = "\"exit\"" ]; then
break ;
else
for J in $(seq 0 $Max); do
echo ${Projects[$J]} ;
if [ ${Projects[$J]} = $Response ]; then
declare Exist="True" ;
else
declare Exist="False" ;
fi;
done;
if [ $Exist = "True" ]; then
cd Projects/$Response ;
./computerman-18.1.5b/bin/computerman
cd ..
cd ..
elif [ \"$Response\" = "\"\"" ]; then
echo ""
elif [ \"$Response\" = "\"no\"" ]; then
echo ""
else
mkdir Projects/$Response ;
declare -a Projects=(${Projects[@]} $Response);
cd Projects/$Response ;
tar -x -v -f ../../computerman-18.1.5b.tar
make -C computerman-18.1.5b head tail clean mrproper all
cp computerman-18.1.5b/bin/cpu ~/bin
./computerman-18.1.5b/bin/computerman
cd ..
cd ..
fi;
fi;
declare -a Projects=(`ls Projects`) ;
declare Max="`ls Projects | cat -n | tail -1 | awk '{print $1}'`";
let Max=Max-1;
done;
A chaque tour de boucle on affiche la liste des projet est on attends la réponse.