Passer tout les paramètres en un seul paramètres -SHELL

Passer tout les paramètres en un seul paramètres -SHELL - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 03-03-2015 à 16:07:06    

Bonjour,
 
Je me suis mis il y a un mois à la programation et je commence à m'habituer à l'environement GNOME. Je voudrais comme son titre l'indique que tout mes paramètres soit en un seul paramètres.
 
 
 
Pour ceux qui veulent plus de détails, je voudrais taper dans mon terminal (>recherche coline bleu) et sa me recherche sur google coline bleu. Voici ce que j'ai fait en Shel
#!/bin/bash                                                                      
# affiche_param.sh                                                              
 
echo"$*"
firefox -search $*
"
 
LE PROBLEME -> Quand je le lance firefo me fait bien une recherche sur 'coline' mais il croit que bleu est une adresse url et m'ouvre dans une autre fenetre www.bleu.com ....; HELP ME (T.T)


Message édité par leclowndu31 le 03-03-2015 à 16:08:15
Reply

Marsh Posté le 03-03-2015 à 16:07:06   

Reply

Marsh Posté le 03-03-2015 à 20:16:01    

firefox -search "$*"


---------------
Les avis, c'est comme les anus, tout le monde en a un.
Reply

Marsh Posté le 03-03-2015 à 21:12:01    

déjà fait sa marche pas :/

Reply

Marsh Posté le 03-03-2015 à 21:57:13    

chez moi ça fonctionne pourtant.
 
cat recherche.sh  
 
#!/bin/bash                                                                      
firefox -search "$*"
 
 
chmod +x recherche.sh
 
./recherche.sh coline bleu


Message édité par l4nkou le 03-03-2015 à 21:57:31

---------------
Les avis, c'est comme les anus, tout le monde en a un.
Reply

Marsh Posté le 04-03-2015 à 05:15:43    

que signifie exactement le .sh que l'on mets après ? Qu'est ce qu'il permet de faire ?

Reply

Marsh Posté le 04-03-2015 à 07:42:55    

leclowndu31 a écrit :

que signifie exactement le .sh que l'on mets après ? Qu'est ce qu'il permet de faire ?


 
Il ne sert à rien si ce n'est à nous humains de se souvenir qu'il s'agit d'un script shell. Le système lui s'en fout royal, ton script pourrait s’appeler .toto .exe ou .jeanlou c'est pareil

Reply

Marsh Posté le 04-03-2015 à 19:42:50    

ok merci alors :hello:

Reply

Marsh Posté le 04-03-2015 à 23:23:46    

$* est une liste d'arguments séparés par des espaces, interprétée comme telle par firefox (enfin, "colline" est un sous-argument pour firefox -search et "bleu" un argument pour firefox)

 

"$*" c'est la même chose? oui et non. On a mis ça entre guillemets, alors c'est en fait une chaîne de caractères qui est interprétée comme un seul argument par firefox.

 

depuis la ligne de commande, on peut soit mettre les guillemets (firefox -search "colline bleu" ) soit "échapper" (escape) l'espace : firefox -search colline\ bleu

 

colline\ bleu est un seul argument (qui contient un espace) alors que colline bleu c'est deux arguments séparés par un espace.


Message édité par blazkowicz le 04-03-2015 à 23:27:43
Reply

Marsh Posté le 30-05-2015 à 18:19:24    

Pourquoi ne pas simplement traiter tout les paramètres comme une chaine dans ton script.
 
Un truc du genre :
 
 
for ((i=2 ; $# ; i++)) # $# est une variable par défaut, contenant le nombre de paramètres transmit au script lors de son execution
    chaine+=$i
done
 
echo $chaine
 
ça concatène ce que contient les paramètres supérieur à 1 (je suis pas sur de la syntaxe par contre)

Reply

Marsh Posté le 30-05-2015 à 19:31:59    

Pourquoi ne pas choisir une autre startégie ?
 
 
firefox -search $*
 
. ./sh "colline+bleu"


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 30-05-2015 à 19:31:59   

Reply

Marsh Posté le 30-05-2015 à 20:50:01    

alias fs='firefox -search'   <- ou bien alias recherche='firefox -search'

 

fs colline\ bleu
fs "colline bleu"
fs colline bleu   <- lance deux recherches mais c'est parce que tu lui as demandé

 

c'est ce qui me paraît le plus simple, sans script shell.

 

(pour conserver l'alias, le mettre dans le fichier ~/.bashrc ; pour appliquer les mofifs ouvrir un nouveau terminal ou faire source .bashrc)


Message édité par blazkowicz le 30-05-2015 à 20:53:41
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed