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 04/05/2010, à 19:16

clochard

demande d'aide scripting bash

salut je voudrais lancer une application cli depuis n'importe que endroit tout en gardant l'application dans mon home, ex:

sudo su
cd /usr/local/bin
echo "#bin/bash" > application
echo "cd /home/clodo && perl app.pl" >> application
chmod +x application

alors donc ca fonctionne très bien, mais j'aimerais qu'il puisse lire ce qu'on lui dit, genre sans argument ca le lance tel quel mais avec arguments bein ca les passes, genre je suis dans /usr/share je fais application -a bla (je voudrais qu'il execute ce que je lui dit)

le tout sans avoir a mettre de -a ou autre commande dans le script juste qu'il lise et execute l'application avec le(s) parametre(s) rentré(s) (et de facon non interactive)

Hors ligne

#2 Le 04/05/2010, à 19:21

sputnick

Re : demande d'aide scripting bash

Cette explication de clochard ne me satisfait pat tout à fait.

On connait pas trop le contexte.

Si j'essaye de lire entre les lignes, je dirait que tu essaye de lancer un script depuis n'importe quel répertoire, il faut donc qu'il soit dans le PATH.

Pour ça, tu crée un répertoire ~/bin et tu l'ajoute dans la variable PATH du ~/.bashrc :

export PATH=~/bin:$PATH

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#3 Le 04/05/2010, à 19:28

clochard

Re : demande d'aide scripting bash

en gros comme si je faisait un ln -s vers l'application et que j'executais le liens depuis son repertoire, sauf que un ln -s dans /usr/local/bin ca n'est pas reconnu comme une application donc je peux l'executer que depuis /usr/local/bin et pas ailleurs.

je vais tester sinon le truc de la variable path dans bash.rc

Hors ligne

#4 Le 04/05/2010, à 20:04

clochard

Re : demande d'aide scripting bash

bon effectivement ca fonctionne le truc du path, mais c'est pas top, en fait c'est bien si tous les binaires se trouvent aux meme endroit, mais si on a des applications dans des sous repertoires etc ca devient ingérable

Hors ligne

#5 Le 04/05/2010, à 20:51

Totor

Re : demande d'aide scripting bash

t'as pas le choix...
et puis, il suffit d'être organisé... si tu commences à disperser tes scripts, c'est là que ça va être ingérable

une autre solution, c'est de faire des alias ou de faire un script qui génère dynamiquement ton PATH avec toutes les arborescences que tu souhaites...

du style :

PATH=$PATH:$(find ~/bin/ ~/scripts/ -mindepth 1 -type d -printf "%p:"|sed 's/:$//')

-- Lucid Lynx --

Hors ligne

#6 Le 04/05/2010, à 21:15

clochard

Re : demande d'aide scripting bash

je comprend pas trop pourquoi c'est pas possible, si je fous le script dans /usr/local/bin et qu'il pointe vers mon application dans ~/ il suffirait juste qu'ils soit apte a l'executer si aucun argument passé, et de l'executer avec des arguments si je rentre un truc dans le shell. En gros faut qu'il arrive a lire ce que j'ecris et qu'il le mette a la suite de ma commande de base.

Enfin je vois ca comme ca moi hmm

genre avec "read"

Dernière modification par clochard (Le 04/05/2010, à 21:20)

Hors ligne

#7 Le 04/05/2010, à 21:35

clochard

Re : demande d'aide scripting bash

genre en francais ca donnerait:

variable=appli.pl
deplacement dans le repertoire de appli.pl
si "variable" lu sans autre arguments, executer perl appli.pl --help
sinon lire la ligne de commande et executer "perl variable + cli"

et ensuite reste plus cas mettre ca dans /usr/local/bin et je peux l'executer de partout (sans mettre directement appli.pl dans /usr/local/bin)

?

Dernière modification par clochard (Le 04/05/2010, à 21:35)

Hors ligne