Posté par Ubis le 04 novembre 2014 à 22:22. En réponse au message Exercice shell script . Évalué à 1.
J'abandonne, je suis obligé d'aller à l'exam
Posté par Ubis le 04 novembre 2014 à 21:55. En réponse au message Exercice shell script . Évalué à 1.
Finalement :
#!/bin/sh if [ $# -ge 1 ] then $1 else echo "usage: <cmd> <cmd>" exit 1 fi if [ $? -ne 0 ] then echo "argument non valide" exit 1 else $2 fi exit 0
ça fonctionne mais j'aurais quand même voulu savoir comment enlever la sortie d'erreur lorsque l'on entre une commande qui n'existe pas
Je sais qu'il faut rediriger vers >&2 dev/null mais c'est quoi que je dois rediriger ?
Exemple :
./ouu.sh date me
mardi 4 novembre 2014, 21:54:24 (UTC+0100) ./ouu.sh: line 15: me : commande introuvable <- je veux enlever cette ligne
Posté par Ubis le 04 novembre 2014 à 21:30. En réponse au message Exercice shell script . Évalué à 1.
J'ai réussi pour la correction du do :
#!/bin/sh if [ $# -ge 1 ] then for i do $i done fi if [ $? -ne 0 ] then echo "argument non valide" exit 1 else $i shift 1 fi exit 0
Par contre quand j’exécute le script :
./ouu.sh ps date
J'obtiens deux fois la date à la fin alors que je ne la veux qu'une seule fois ?
PID TTY TIME CMD 8635 pts/31 00:00:00 bash 10462 pts/31 00:00:00 bash 10463 pts/31 00:00:00 cat 11978 pts/31 00:00:00 bash 11979 pts/31 00:00:00 ps mardi 4 novembre 2014, 21:27:19 (UTC+0100) mardi 4 novembre 2014, 21:27:19 (UTC+0100)
Posté par Ubis le 04 novembre 2014 à 20:07. En réponse au message Exercice shell script . Évalué à 1.
En fait j'ai réussi tout les autres exercices, c'est à celui la que je ne sais pas comment faire
Sinon cette partie du code est-elle correcte ?
do $i done
Posté par Ubis le 31 octobre 2014 à 10:32. En réponse au message Exercice shell script. Évalué à 1.
C'est bon, merci beaucoup !
#!/bin/sh if [ $# -ge 1 ] then VAR="$@" echo $VAR | ps -C `sed -e 's/ /,/g'` else echo "pas d'argument" exit 1 fi exit 0
Posté par Ubis le 31 octobre 2014 à 10:06. En réponse au message Exercice shell script. Évalué à 1.
J'ai déjà essayé mais sed doit prendre un fichier en entrée non ?
Posté par Ubis le 31 octobre 2014 à 08:45. En réponse au message Exercice shell script. Évalué à 1.
Finalement j'ai trouvé comment faire avec les substitutions :
#!/bin/sh if [ $# -ge 1 ] then VAR="$@" echo $VAR > tmp ps -C `sed -e 's/ /,/g' tmp` else echo "pas d'argument" exit 1 fi exit 0
Mais par contre n'y a-t-il pas un moyen de faire sans le fichier tmp ? Je sens que mon prof ne va pas aimer
Posté par Ubis le 31 octobre 2014 à 01:06. En réponse au message Exercice shell script. Évalué à 1.
Nous n'avons pas encore vu les substitutions en cours :
#!/bin/sh if [ $# -ge 1 ] then VAR="$@" echo $VAR > tmp sed -e 's/ /,/g' tmp ps -C $VAR else echo "pas d'argument" exit 1 fi exit 0
Je ne vois pas comment récupérer la sortie de sed, j'ai essayer avec des pipes mais j'obtiens que des erreurs. J'ai fait une gaffe dans le script ci dessus ?
Posté par Ubis le 30 octobre 2014 à 20:40. En réponse au message Exercice shell script. Évalué à 1.
J'utilise Ubuntu
#!/bin/sh if [ $# -ge 1 ] then VAR="$@" echo $VAR > tmp sed -e 's/" "/,/g' tmp ps -C $VAR else echo "pas d'argument" exit 1 fi exit 0
C'est comme ça pour l'utilisation de sed ? Les espaces ne sont pas remplacés quand je fait ça
Posté par Ubis le 30 octobre 2014 à 20:15. En réponse au message Exercice shell script. Évalué à 1.
J'ai essayé quelque chose, dites moi si je suis dans la bonne voie :
if [ $# -ge 1 ] then for i do VAR="$i $VAR" done echo $VAR | sed "s/" "/,/g" else echo "pas d'argument" exit 1 fi exit 0
Posté par Ubis le 30 octobre 2014 à 19:56. En réponse au message Exercice shell script. Évalué à 1.
Comment je dois m'y prendre alors ? Je comprend pas trop la consigne
Posté par Ubis le 30 octobre 2014 à 17:58. En réponse au message Exercice shell script. Évalué à 1.
Je crois que c'est bon pour la 2.
J'aurai juste une dernière question pour la 3. qui me dit de reprendre le script 2.
Je dois remplacer les espaces par des virgules or il y a déjà des virgules non ? Ou bien c'est le script 1 que je dois modifier ?
Posté par Ubis le 30 octobre 2014 à 17:40. En réponse au message Exercice shell script. Évalué à 2.
Je crois que c'est ça
if [ $# -ge 1 ] then for i do if [ -z ${VAR} ] then VAR="$i" else VAR="$VAR,$i" fi done echo $VAR ps -C $VAR else echo "pas d'argument" exit 1 fi exit 0
Mais par contre quand j'essaye : ./cmd_v2.sh bash geany Je n'ai que bash qui s'affiche
Posté par Ubis le 30 octobre 2014 à 17:17. En réponse au message Exercice shell script. Évalué à 1.
Rhaa j'ai le cerveau qui brule, je m'en sors pas avec les conditions :
if [ $# -ge 1 ] then for i do if [ $VAR -eq 0 ] then VAR="$i" else VAR="$VAR,$i" fi done ps -C $VAR else echo "pas d'argument" exit 1 fi exit 0
Posté par Ubis le 30 octobre 2014 à 16:45. En réponse au message Exercice shell script. Évalué à 1.
./cmd_v2.sh bash geany
REPONSE : ./cmd_v2.sh: 14: VAR+=,bash: not found ./cmd_v2.sh: 14: VAR+=,geany: not found ps -C ./cmd_v2.sh: 14: Bad substitution
J'ai pas réussi avec ce que tu m'as dit
Posté par Ubis le 30 octobre 2014 à 16:40. En réponse au message Exercice shell script. Évalué à 1.
Si j'ai bien compris :
if [ $# -ge 1 ] then for i do if [ $VAR -eq 0 ] then VAR="$VAR$i" else VAR="$VAR$i," fi done ps -C $VAR else echo "pas d'argument" exit 1 fi
exit 0
Mais j'ai toujours le même problème, la virgule à la fin, j'ai fait une erreur dans la condition ?
Posté par Ubis le 30 octobre 2014 à 16:16. En réponse au message Exercice shell script. Évalué à 0.
Donc finalement tu ne sais pas comment enlever la virgule à la fin ?
Posté par Ubis le 30 octobre 2014 à 15:53. En réponse au message Exercice shell script. Évalué à 1.
En fait je dois reprendre le script d'avant pour continuer l'exercice
Posté par Ubis le 30 octobre 2014 à 15:40. En réponse au message Exercice shell script. Évalué à 1.
Donc je dois essayer avec des conditions (if ..) Ça complique pas la chose ? Il n'y a pas une méthode plus simple ?
Posté par Ubis le 30 octobre 2014 à 15:27. En réponse au message Exercice shell script. Évalué à 1.
J'ai déjà essayer avec echo pour comprendre le problème :
ps -C bash,geany,
C'est la dernière virgule qui gène et je sais pas comment l'enlever
[^] # Re: Bonne nuit !
Posté par Ubis . En réponse au message Exercice shell script . Évalué à 1.
J'abandonne, je suis obligé d'aller à l'exam
[^] # Re: Bonne nuit !
Posté par Ubis . En réponse au message Exercice shell script . Évalué à 1.
Finalement :
ça fonctionne mais j'aurais quand même voulu savoir comment enlever la sortie d'erreur lorsque l'on entre une commande qui n'existe pas
Je sais qu'il faut rediriger vers >&2 dev/null mais c'est quoi que je dois rediriger ?
Exemple :
./ouu.sh date me
mardi 4 novembre 2014, 21:54:24 (UTC+0100)
./ouu.sh: line 15: me : commande introuvable <- je veux enlever cette ligne
[^] # Re: Bonne nuit !
Posté par Ubis . En réponse au message Exercice shell script . Évalué à 1.
J'ai réussi pour la correction du do :
Par contre quand j’exécute le script :
J'obtiens deux fois la date à la fin alors que je ne la veux qu'une seule fois ?
[^] # Re: Bonne nuit !
Posté par Ubis . En réponse au message Exercice shell script . Évalué à 1.
En fait j'ai réussi tout les autres exercices, c'est à celui la que je ne sais pas comment faire
Sinon cette partie du code est-elle correcte ?
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
C'est bon, merci beaucoup !
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
J'ai déjà essayé mais sed doit prendre un fichier en entrée non ?
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
Finalement j'ai trouvé comment faire avec les substitutions :
Mais par contre n'y a-t-il pas un moyen de faire sans le fichier tmp ? Je sens que mon prof ne va pas aimer
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
Nous n'avons pas encore vu les substitutions en cours :
Je ne vois pas comment récupérer la sortie de sed, j'ai essayer avec des pipes mais j'obtiens que des erreurs. J'ai fait une gaffe dans le script ci dessus ?
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
J'utilise Ubuntu
C'est comme ça pour l'utilisation de sed ? Les espaces ne sont pas remplacés quand je fait ça
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
J'ai essayé quelque chose, dites moi si je suis dans la bonne voie :
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
Comment je dois m'y prendre alors ? Je comprend pas trop la consigne
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
Je crois que c'est bon pour la 2.
J'aurai juste une dernière question pour la 3. qui me dit de reprendre le script 2.
Je dois remplacer les espaces par des virgules or il y a déjà des virgules non ? Ou bien c'est le script 1 que je dois modifier ?
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 2.
Je crois que c'est ça
Mais par contre quand j'essaye : ./cmd_v2.sh bash geany
Je n'ai que bash qui s'affiche
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
Rhaa j'ai le cerveau qui brule, je m'en sors pas avec les conditions :
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
./cmd_v2.sh bash geany
REPONSE :
./cmd_v2.sh: 14: VAR+=,bash: not found
./cmd_v2.sh: 14: VAR+=,geany: not found
ps -C
./cmd_v2.sh: 14: Bad substitution
J'ai pas réussi avec ce que tu m'as dit
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
Si j'ai bien compris :
!/bin/sh
if [ $# -ge 1 ]
then
for i
do
if [ $VAR -eq 0 ]
then VAR="$VAR$i"
else VAR="$VAR$i,"
fi
done
ps -C $VAR
else
echo "pas d'argument"
exit 1
fi
exit 0
Mais j'ai toujours le même problème, la virgule à la fin, j'ai fait une erreur dans la condition ?
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 0.
Donc finalement tu ne sais pas comment enlever la virgule à la fin ?
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
En fait je dois reprendre le script d'avant pour continuer l'exercice
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
Donc je dois essayer avec des conditions (if ..) Ça complique pas la chose ? Il n'y a pas une méthode plus simple ?
[^] # Re: Débuggage
Posté par Ubis . En réponse au message Exercice shell script. Évalué à 1.
J'ai déjà essayer avec echo pour comprendre le problème :
ps -C bash,geany,
C'est la dernière virgule qui gène et je sais pas comment l'enlever