BASH Passage de paramètre contenant des espaces - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 08-02-2008 à 19:37:26
$Ma super variable => "${Ma super variable}"
Marsh Posté le 08-02-2008 à 19:56:14
Je en comprends pas ce que tu me laisse comme piste là.
Les variables sont passées en paramètre au lancement du script.
Je récupère dans le 1er ex :
$1 ==> /chemin_vers_fichier/1.mp3
$2 ==> 2269.flv
$3 ==> chemin_de_destination/
Dans le 2eme exemple :
$1 ==> /chemin_vers_fichier/Nom
$2 ==> de
$3 ==> fichier
Donc je perds l'incohérence entre ce que je passe et ce que je veux.
Marsh Posté le 08-02-2008 à 19:57:19
Ton script, c'est pour extraire du son a partir d'un flv ?
Marsh Posté le 08-02-2008 à 20:07:29
oui mais ca pourrait etre n'importe quoi.
En fait je veux pouvoir passer à un script des parametres avec des espaces c'est tout.
Concrètement, s'il pourrait faire le café, j'aimerai bien lui passer comme paramètre de marque de café "Jacques Vabre" (qui contient un espace) et pas seulement "Nescafé"
Marsh Posté le 08-02-2008 à 20:09:34
Perso, je poses des questions et je colle la réponse dans une variable que j'encadres proprement.
Marsh Posté le 08-02-2008 à 20:12:21
Ah ok avec un read ?
Le truc c'est que les musiques arrivent continuellement. Je veux que tout soit full automatique (via une crontab). C'est le cas pour des musiques sans espaces mais pas avec.
La solution de renommer avant est envisageable mais contraignante dans mon cas.
Marsh Posté le 08-02-2008 à 20:33:13
Tu peux récupérer mon "mplayer audio extractor" et l'adapter a ta sauce...
Marsh Posté le 08-02-2008 à 20:49:04
TU n'as pas compris ce que je voulais faire.
Le script est executé sur une version serveur de linux donc pas d'interface graphique.
Il n'y aura personne derriere la machine pour faire le boulot, ca doit être full automatique.
Et dans tous les cas, même avec ton "mplayer audio extractor", il faudra préciser le nom d'un fichier en entré donc le passer en paramètre donc le problème est le même.
Marsh Posté le 08-02-2008 à 22:32:09
ragondin a écrit : Normal me direz-vous, il y a des espaces, mais que ce soit en encadrant le parametre avec des guillemets simple/double ou en échappant les espaces, le script ne veut rien savoir, quand j'affiche la variable $1, j'obtiens toujours "/chemin_vers_fichier/Nom". |
AMHA c'est à l'intérieur du script que se situe le problème, et pas seulement lors de l'appel dans le shell.
Par exemple, lorsque tu utilises ta variable $1, il faut toujours la mettre entre guillemets.
Marsh Posté le 08-02-2008 à 23:03:03
Lu, appelles ton script avec :
|
Et au debut, tu ajoutes :
|
Ça afichera tous les paramètres de ton script et tu pourras vérifier qu'il sont bien entrés correctement.
Marsh Posté le 08-02-2008 à 19:33:38
Bonjour tout le monde.
Je rencontre un soucis pour passer des paramètres contenant un espace à un script bash.
Ce script converti un fichier mp3 en flv avec ffmpeg
Ceci fonctionne
Ceci ne fonctionne pas
Normal me direz-vous, il y a des espaces, mais que ce soit en encadrant le parametre avec des guillemets simple/double ou en échappant les espaces, le script ne veut rien savoir, quand j'affiche la variable $1, j'obtiens toujours "/chemin_vers_fichier/Nom".
Quelqu'un a une idée ?
J'ai tenté mon ami Google en cherchant dans des tuto de bash mais c'est toujours des parametres "simple" qui sont passés au script.
Merci.
Message édité par ragondin le 08-02-2008 à 19:55:03
---------------
Pays et country_code traduits : https://www.iso-country-code.com