J'ai un script bash dont un argument est entouré de guillemets, ce qui crée un fichier de forme de carte dans les limites données, par ex.bash: appel d'un script avec un argument de guillemets
$ export_map "0 0 100 100"
Dans le script, il y a deux déclarations select
:
select ENCODING in UTF8 WIN1252 WIN1255 ISO-8859-8;
...
select NAV_SELECT in Included Excluded;
Bien entendu, ces deux déclarations l'entrée exigent entrer un numéro comme entrée. Cela peut être contourné en redirigeant les numéros, suivis d'une nouvelle ligne, vers le script.
Afin de gagner du temps, je voudrais avoir un script qui créerait 8 cartes - pour chaque combinaison de ENCODING
(4 options) et NAV_SELECT
(2 options).
J'ai écrit un autre script bash, create_map
, au serveur comme emballage: (merci!, Brian)
#!/bin/bash
for nav in 1 2 3 4;
do
for enc in 1 2;
do
printf "$nav\n$enc\n" | /bin/bash -c "./export_map.sh \"0 0 100 100\""
done
done
** Cela fonctionne, mais je ne peux pas trouver un moyen d'avoir l'argument numérique "0 0 100 100"
étant passé de l'extérieur du script externe. **
Fondamentalement, je suis à la recherche d'un moyen d'accepter un argument entre guillemets doubles à un script bash wrapper, et le passer - avec les guillemets doubles - à un script interne.
PRÉCISIONS:
export_map
est le script principal, appelé depuis create_map
8 fois.
Des idées?
Merci,
Adam
Je suis un peu clair sur ce que vous essayez de faire ici. Vous dites que vous essayez de faire quelque chose avec des instructions 'select', mais il n'y a pas d'instruction select dans votre script bash. Vous imprimez deux nombres sur des lignes différentes et redirigez-les dans une invocation de votre script 'export_map.sh', pour lequel vous ne fournissez pas le code (est-ce le même que le' create_map' que vous avez mentionné plus tôt?). Je ne sais pas trop où vos problèmes de citations arrivent aussi. Pouvez-vous essayer de préciser ce que vous essayez exactement de faire, et le problème exact que vous rencontrez? –
J'ai clarifié ma réponse - merci beaucoup. –