Création de ses propres commandes partir d'un script

Résolu/Fermé
Zebuuu Messages postés 19 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 4 décembre 2012 - 27 nov. 2012 à 05:35
Swiss Knight Messages postés 1956 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 27 juillet 2016 - 28 nov. 2012 à 15:40
Bonjour,
Voilà je voudrais créer mes propres commandes à partir d'un script bash.

Par exemple au lieu de faire ./nomDuScript.sh je n'aurai plus qu'à faire nomDuScript.
Je débute en shell et j'ai pas mal regardé sur le net mais je n'y arrive pas.

Par exemple j'ai lu
https://www.commentcamarche.net/faq/15252-creation-d-une-commande-sous-linux
http://feldboris.alwaysdata.net/blog/creer-des-commandes-bash.html

A chaque fois ca ne trouve pas la commande :

Par exemple en utilisant la méthode du deuxième lien : (en modifiant $PATH et /etc/bash.bashrc)

#!/bin/sh

#fichier installation.sh

mkdir /usr/share/matrix_network
echo "\nCréation du dossier matrix_network... Done" 

echo -n "./usr/share/matrix_network/creeProfil.sh" > /usr/share/matrix_network/matrix_network.bash_aliases
echo "Création du fichier matrix_network.bash_aliases dans /matrix_network... Done"


cp creeProfil.sh  /usr/share/matrix_network/
echo "Création de la commande bash creeProfil... Done" 

echo -n export PATH=$PATH:/usr/share/matrix_network/ >> /etc/bash.bashrc
echo "Ajout de /usr/share/matrix_network à la variable PATH... Done" 

echo -n "\nif [ -f /usr/share/matrix_network/matrix_network.bash_aliases ]; then
	. /usr/share/matrix_network/matrix_network.bash_aliases ; fi" >> /etc/bash.bashrc
echo "Ajout d'une référence à matrix_network.bash_aliase dans /etc/bash.bashrc... Done" 

et quand je tape dans la console installation j'ai le droit à "commande introuvable"

echo "\nInstallation Terminée... Bonne utilisation\n" 

#. /etc/bash.bashrc


Sinon j'ai réussi à créer une commande à partir un .c compilé.
En alternative est-il possible de lancer un script .sh en c?

Si quelqu'un peut m'aider svp
Merci d'avance.
A voir également:

6 réponses

trauqnej Messages postés 154 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 5 septembre 2022 23
28 nov. 2012 à 02:32
en fait c'est simple:
en ligne de commande tape :
echo "cette ligne s'affiche lorsque j'exécute mon dudulle (même sans extension) " > dudulle

# deuxieme commande
chmod u+x dudulle

# troisieme commande
PATH="$PATH:."
# le point indique l'endroit ou tu te trouves

# maintenant tu peux taper
dudulle
#cedla va afficher la ligne

pour éviter de taper toujours la commande du PATH, mets la dans ton fichier .profile ou .bashrc

Voilà, c'est, aussi, pour cela que j'aime linux
3
Swiss Knight Messages postés 1956 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 27 juillet 2016 110
28 nov. 2012 à 15:40
c'est vrai que sans l'extension .sh ça marche et c'est tout con ;)
0
Utilisateur anonyme
28 nov. 2012 à 08:14
salut,

man hier
hier comme hierarchy, pas comme la veille.
;)
1
Salut, il manque des doubles quote dans
echo -n export PATH=$PATH:/usr/share/matrix_network/ >> /etc/bash.bashrc
0
Zebuuu Messages postés 19 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 4 décembre 2012
Modifié par Zebuuu le 27/11/2012 à 09:07
Merci.

J'ai fait deux/trois modif et maintenant ca marche enfin presque.
Finalement mon script est envoyé dans /usr/bin/ comme ça plus de probleme avec $PATH
Je peux faire creeProfil que en étant loogé en root (sudo su)

J'ai donc fait un chgrp et chown pour mettre mon utilisateur et son groupe sur le fichier /usr/bin/creeProfil.sh

Si je reste en root ca marche toujours. Mais en dehors c'est commande introuvable.

De quoi cela peut-il bien venir?
Faut -il que je fasse un chown et chgrp pour le fichier aliases également?

Merci d'avance

EDIT : chown et chgrp pour le fichier aliases ca ne change rien, je suis perdu
0
le bashrc modifiable par les users est ~/.bashrc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zebuuu Messages postés 19 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 4 décembre 2012
27 nov. 2012 à 21:10
Salut, Merci de l'info.

Finalement j'ai choisi de mettre ça dans /etc/bash.bashrc, si je ne me trompe pas c'est bien ici pour tous les utilisateurs et ~/.bashrc seulement pour l'user qui est co?

Dernière question.
Si je veux stocker des données en commun à tous les users c est bien dans /usr/share non?
Je ne saisie pas bien la différence entre /usr/share et /usr/local/share .

Merci d'avance
0
Swiss Knight Messages postés 1956 Date d'inscription samedi 22 novembre 2008 Statut Membre Dernière intervention 27 juillet 2016 110
Modifié par Swiss Knight le 28/11/2012 à 00:00
Salut,
moi j'ai un bash.bashrc dans /etc , c'est juste.
et sinon il y a ce fichier aussi je crois, à vérifier : /etc/profile

je suis aussi curieux de connaître la différence entre /usr/share et /usr/local/share
je me perds dans tous ces dossiers :(

"Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement." -A. Einsten-
0