Retourner au contenu associé (entrée de forum : Faire un script reproduisant une commande)
Posté par Woap le 06 décembre 2014 à 14:45. En réponse au message Faire un script reproduisant une commande. Évalué à 1.
J'ai modifié le script en prenant en considération tout les commentaires :
#!/bin/sh if [ ! -e 1ドル ] then DEPENDANCES=`cat makefiletest | grep -v '^#' | grep '1ドル' | sed 's/\t//g' | c ut -d ':' -f2 | head -1` COMMANDE=`cat makefiletest | grep -v '^#' | grep -v ':' | sed 's/\t//g'| sed 's/ /:/g'` for i in $DEPENDANCES do if [ -e $i ] then for k in $COMMANDE do var=`echo $k | sed 's/:/ /g'` echo $var #sh -c "$var" done else cat makefiletest | grep $i 2>&1 /dev/null if [ $? -ne 0 ] then echo "prérequis $i inexistant" exit 1 else echo "STOP" <- Récursivité ici ? exit 0 fi fi done else echo "La cible 1ドル existe deja" exit 0 fi
1) Comment je fait pour tester si $i se trouve en tant que cible ? ( Par exemple tester si toto.o se trouve en tant que cible )
cat makefiletest | grep $i 2>&1 /dev/null if [ $? -ne 0 ]
Avec grep j'ai toutes lignes contenant le mot or il faut que la ligne commence par ce mot
2) Pour la récursivité c'est bien ici que je dois le faire avec : 0ドル $i ?
echo "STOP"
3) Après j'ai toujours le problème pour récupérer $DEPENDANCES et $COMMANDE selon la cible : Si la cible est toto je dois pouvoir mettre dans
$DEPENDANCES= toto.o
$COMMANDE= touch toto echo toto est touche
Dans ce script cela fonctionne que quand il n'y a qu'un seul bloc dans le makefile :
toto: toto.o touch toto echo toto est touche
Quand il y a plusieurs blocs je n'arrive pas a récupérer juste le bloc correspondant le nom de la cible
Voila merci d'avance
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: Récursivité
Posté par Woap . En réponse au message Faire un script reproduisant une commande. Évalué à 1.
J'ai modifié le script en prenant en considération tout les commentaires :
1) Comment je fait pour tester si $i se trouve en tant que cible ? ( Par exemple tester si toto.o se trouve en tant que cible )
Avec grep j'ai toutes lignes contenant le mot or il faut que la ligne commence par ce mot
2) Pour la récursivité c'est bien ici que je dois le faire avec : 0ドル $i ?
3) Après j'ai toujours le problème pour récupérer $DEPENDANCES et $COMMANDE selon la cible :
Si la cible est toto je dois pouvoir mettre dans
$DEPENDANCES= toto.o
$COMMANDE= touch toto
echo toto est touche
Dans ce script cela fonctionne que quand il n'y a qu'un seul bloc dans le makefile :
Quand il y a plusieurs blocs je n'arrive pas a récupérer juste le bloc correspondant le nom de la cible
Voila merci d'avance