YouNix Posté(e) le 30 mars 2006 Partager Posté(e) le 30 mars 2006 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
YouNix Posté(e) le 30 mars 2006 Auteur Partager Posté(e) le 30 mars 2006 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 30 mars 2006 Partager Posté(e) le 30 mars 2006 Bon j'ai combiné les 2 sujets, y'a pas besoin d'en créer autant 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}' Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 30 mars 2006 Partager Posté(e) le 30 mars 2006 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.