#1 Le 30/10/2014, à 16:25
- Ubis
Exercice : Script Shell problème
Bonjour j'ai un tp à faire, je bloque à un exercice :
J'ai réussi la 1.
#!/bin/sh
if [ $# -ge 1 ]
then
for i
do
ps -C $i
doneelse
echo "pas d'argument"
exit 1
fiexit 0
La 2. je bloque je sais pas comment faire avec les virgules, quand j’exécute j'ai un message d'erreur.
#!/bin/sh
if [ $# -ge 1 ]
then
for i
do
VAR="$VAR$i," <- Le problème est ici
done
ps -C $VAR
else
echo "pas d'argument"
exit 1
fiexit 0
Pour vérifier la sortir j'ai mis dans le script : echo ps -C $VAR
J'obtiens : ps -C bash,geany, <- C'est la dernière virgule qui gène comment l'enlever ?
Pour executer je fait :
./cmd_v1.sh bash geany <- Pas de problème
./cmd_v2.sh bash geany <- erreur ( ERROR: Improper list. )
Merci d'avance
Hors ligne
#2 Le 30/10/2014, à 16:40
- pingouinux
Re : Exercice : Script Shell problème
Bonjour,
$ VAR="bash,geany,"
$ echo "$VAR"
bash,geany,
$ VAR=${VAR%?}
$ echo "$VAR"
bash,geany
Hors ligne
#3 Le 05/11/2014, à 19:41
- sputnick
Re : Exercice : Script Shell problème
Si vous n'avez pas vu les expansions de paramètres de bash en cours, utilise plutot sed :
$ VAR="bash,geany,"
$ VAR=$(echo "$VAR" | sed 's/,$//')
$ echo $VAR
bash,geany
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne