YouNix Posted March 30, 2006 Share Posted March 30, 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... Link to comment Share on other sites More sharing options...
YouNix Posted March 30, 2006 Author Share Posted March 30, 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 Link to comment Share on other sites More sharing options...
tuXXX Posted March 30, 2006 Share Posted March 30, 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}' Link to comment Share on other sites More sharing options...
theocrite Posted March 30, 2006 Share Posted March 30, 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 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.