J'essaye d'exécuter un script Perl depuis un script bash (je changerai ce design plus tard, mais pour le moment, je vais supporter ça). Le script bash reçoit l'argument qu'il va s'exécuter. L'argument du script est la suivante:Echapper des espaces dans des scripts shell/perl imbriqués
test.sh "myscript.pl -g \"Some Example\" -n 1 -p 45"
dans le script bash, je lance simplement l'argument qui a été adoptée:
#!/bin/sh
$1
Cependant, dans mon script perl l'argument -g n'obtient "Some
(c'est avec les citations), au lieu du Some Example
. Même si je le cite, il disparaît à cause de l'espace.
J'ai essayé d'échapper à l'espace, mais ça ne marche pas ... des idées?
Il ne passe un seul argument du script, ce qui devrait produire: "test.sh: ligne 2: myscript.pl -g \" Certains Exemple \ » - n 1 -p 45: commande non trouvée ". –
Oui, comme je l'ai dit, le second ne fonctionne que s'il supprime les citations. –
L'eval l'a fait pour moi. Solution ridiculement simple que je pourrais ajouter ... merci. – EDJ