Passer tout les paramètres en un seul paramètres -SHELL - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 03-03-2015 à 20:16:01
firefox -search "$*"
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
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 ?
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
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.
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)
Marsh Posté le 30-05-2015 à 19:31:59
Pourquoi ne pas choisir une autre startégie ?
firefox -search $*
. ./sh "colline+bleu"
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)
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