Jump to content

lancement execution script SHELL


Recommended Posts

salut à tous, SVP je cherche comment tester ou executer un script SHELL,

et specialement à partir de l\'editeur vi

//

vi test.sh

# i pour l\'insertion

echo ceci est un test concernant les parametres

echo premier param est : $1

echo le secnd est : $2

la totale est : $*

<escp>:wq!

//

voila apres avoir ecris ce mini script je sais pas comment le lancer sur la ligne de commande

Merci encore de pouvoir m\'aider...

Link to comment
Share on other sites

salut à tous et merci d'avance pour l'aide,j'en ai vraiement besoin,

voila j'ai pas su comment extraire

des champs precis d'un fichier, normalement je dois utiliser la command cut, mais

sachant que dans mon fichier les champs sont separés pas plusiuers <espace> alors que l'option -d' ' de la commande ne traite q'un seul caractere, j'ai du mal à m'en sortir, par exemple, je veux extraire les 3 premiers champs du fichier dont on a stocké le resultat de la commande df.

Merci encore pour votre aide

Link to comment
Share on other sites

Bon j'ai combiné les 2 sujets, y'a pas besoin d'en créer autant :chinois:

1 er problème :

soit tu lance ton script avec :

 $ sh test.sh

soit tu le rend exécutable, puis tu le lance comme un exécutable :

 $ chmod +x test.sh
$ ./test.sh

2 ème :

df affiche la sortie en alignant avec des espaces, et cut ne semble pas permettre de gérer les séparateurs multiples (genre plusieurs espaces)

Mais par contre, tu peux utiliser awk simplement :

 $ df | grep "/" | awk '{print $1" "$2" "$3}'

Link to comment
Share on other sites

Premièrement évite de poster deux messages en deux minutes. Tu as le bouton éditer pour ça.

Ensuite pour éxécuter le scritp, c'est

chmod +x test.sh #On donne le droit d'éxécuter
./test.sh #on exécute

La première ligne n'est à faire qu'une seule fois bien sûr.

Autre solution :

sh test.sh

Pour cut, c'est sûr il est pas très pratique avec les espaces lorsque le nombre est indéterminé. Tu peux utiliser awk sinon ou passer un coup de sed avant.

echo "1   2  3   4	 5				   6" | sed "s/ */ /g"
echo "1   2  3   4	 5				   6" | awk {'print $3'}

EDIT : Bon j'ai rien dit pour les deux messages à la suite alors :chinois:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...