Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/10/2009, à 16:34

Grew

Créer sa propre commande unix

Bonjour.

Savez vous comment créer une commande unix?

Par exemple:
J'ai un dossier dans lequel je stock tous mes fichiers de programmation (shellscript en l'occurrence).
Et ça me soule un peu de faire

"root@benux:/# cd /media/stock/progs_shell"

à chaque fois que je veux travailler.

Alors j'ai fait un petit script (progs_shell.sh):

#!/bin/sh

cd /media/stock/progs_shell

qui me placera directement dans mon dossier "progs_shell".

Maintenant j'aimerais bien que ce script puisse être exécuté comme une commande unix, par exemple si je tape progs_shell dans un terminal, il exécute mon script et je me retrouve dans mon dossier progs_shell smile.

J'ai essayé en mettant mon script dans /bin/ et ça ne marche pas:

ben@benux:/# progs_shell
bash: /bin/progs_shell: Permission non accordée

Idem si je le met dans /usr/bin/
Je dois surement utiliser une mauvaise technique. Pouvez-vous m'aider?

Merci! big_smile

Dernière modification par Grew (Le 05/10/2009, à 16:42)

Hors ligne

#2 Le 05/10/2009, à 16:41

obiwankennedy

Re : Créer sa propre commande unix

sudo chmod u+x progs_shell.sh

pour le rendre exécutable.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#3 Le 05/10/2009, à 16:54

Grew

Re : Créer sa propre commande unix

Merci beaucoup, ça fonctionne. Seul petit problème, mon "cd" n'est pas pris en compte. L'exécution de la commande ne produit rien!  -.-'

Ce code ne produit rien:

#!/bin/sh

cd /media/stock/progs_shell

Par contre ici, le echo s'affiche:

#!/bin/sh

echo "cd /media/stock/progs_shell";

Dernière modification par Grew (Le 05/10/2009, à 17:09)

Hors ligne

#4 Le 05/10/2009, à 17:10

Michel38

Re : Créer sa propre commande unix

Bonjour,
Et un petit alias dans ton .bashrc ?
   

alias XXX='cd /media/stock/progs_shell'

Ne pas oublier un petit

source .bashrc

pour activer l'alias


LM18.3 - Kernel: 4.4.0-53-generic i686 (32 bit gcc: 5.4.0) - Cinnamon 3.4.6 (Gtk 3.18.9-1ubuntu3.3)
System: CLEVO (portable)
CPU    : Dual core Intel Core i5-3230M
Card    : Intel 3rd Gen Core processor Graphics Controller

Hors ligne

#5 Le 05/10/2009, à 17:26

Grew

Re : Créer sa propre commande unix

Ah je ne savais pas qu'on pouvait faire ça, merci.
Et si je veux passer des paramètres a ma commande?

Hors ligne

#6 Le 05/10/2009, à 17:35

Grew

Re : Créer sa propre commande unix

Ha j'ai compris! Y'a qu'a mettre le script en alias! smile

Hors ligne

#7 Le 05/10/2009, à 18:06

Grew

Re : Créer sa propre commande unix

Mmmhh... petit probleme encore, j'ai bien mis mon alias dans .bashrc de mon /home/ben/ , j'ai rajouté l'alias

alias vazy='/home/ben/MesScripts/vazy'

et voici mon fichier vazy:

#!/bin/sh

if test $1 = "perl"
then		
	cd /media/stock/prog/perl
fi

if test $1 = "php"
then		
	cd /media/stock/prog/php
fi

if test $1 = "shell"
then		
	cd /media/stock/prog/shell
fi


echo "AAAAAA";

J'ai fait un petit:

source .bashrc

Là il reconnait ma fonction "vazy", mais il ne fait rien a part m'afficher le "AAAAAA"!

Dernière modification par Grew (Le 05/10/2009, à 18:23)

Hors ligne

#8 Le 05/10/2009, à 18:37

arieugon

Re : Créer sa propre commande unix

Si tu crées un répertoire /home/moncompte/bin et que tu mets tes shell-scripts dedans ils seront lancés dès que tu les taperas.
/home/MonComte/bin est dans la variable PATH. C'est fait exprès. Voilà.

Linuxement ;O)


Portable ASUS K73E :  Ubuntu XFCE 20.04 / Ubuntu DDE 20.04 / Debian 10 /Debian 11 (testing) / Devuan 3
Le tout en multi-boot Grub Legacy.

Hors ligne

#9 Le 05/10/2009, à 18:40

Grew

Re : Créer sa propre commande unix

OK merci!
Mais apparemment il y a un problème avec le "cd", car n'importe quelle autre commande dans mon "vazy" fonctionne hmm !
Un "cd" ne fonctionnerais pas dans un script? (j'en doute!)

Hors ligne

#10 Le 05/10/2009, à 19:45

n3o51

Re : Créer sa propre commande unix

Le cd fonctionne !! big_smile Mais en faites tu veut que quant tu tape
nomdetonscript  shell allez dans le repertoire shell c'est ca ?

PS : Si c'est cela lance comme ça le script

. ./tonscript.sh  perl

Dernière modification par n3o51 (Le 05/10/2009, à 19:58)


Welcome to the real world
________________________________

Hors ligne

#11 Le 05/10/2009, à 19:58

Link31

Re : Créer sa propre commande unix

Grew a écrit :

OK merci!
Mais apparemment il y a un problème avec le "cd", car n'importe quelle autre commande dans mon "vazy" fonctionne hmm !
Un "cd" ne fonctionnerais pas dans un script? (j'en doute!)

"cd" fonctionne dans les scripts mais ne change pas le dossier courant du shell parent, sauf si tu lances ton script avec "source ton_script.sh".

Il y a d'autres solutions que tu pourrais essayer :

export CDPATH=.:/media/stock
cd progs_shell

Dernière modification par Link31 (Le 05/10/2009, à 20:00)

Hors ligne

#12 Le 05/10/2009, à 20:25

Grew

Re : Créer sa propre commande unix

Merci! Je crois que j'ai compris cette fois.

Link31 a écrit :

Il y a d'autres solutions que tu pourrais essayer :

export CDPATH=.:/media/stock
cd progs_shell

Peux tu m'expliquer comment fonctionne ce petit bout de code? (plus précisément la fonction export CDPATH.

Merci à vous tous pour votre si efficace aide! big_smile

Hors ligne

#13 Le 06/10/2009, à 18:29

n3o51

Re : Créer sa propre commande unix

ce petit bout sers simplement a export ou "ajouter" a cdpath un chemin d'acces car c'est lui qui es interroger lors d'un cd .


Welcome to the real world
________________________________

Hors ligne