Bonjour, depuis un moment je travaille sur la création d'un installateur pour mon petit logiciel Batch/Bash et j'essaie de convertir cette ligne de code en Bash :
for /f "eol=; tokens=* delims=," %%a in (options.txt) do echo %%a>%%a.txt
Si se n'est pas possible j'aimerai trouver une alternative afin qu'après la saisit clavier d'un l'utilisateur ayant choisit dans une liste numéroté une à plusieurs options, cela résultant d'un fichier options.txt contenant les options de cette manière : 1,2,4,etc. je puisse tester la présence de celle-ci pour pouvoir ensuite affecter de nouvelles valeurs à de nouvelles variables.
Désolé, je viens de trouver la solution à mon problème :
il suffisais d'utiliser la commande sed pour remplacer les virgules par des espaces et récupérer le contenue du fichier avec options=$(cat options.txt).
Bonjour, merci de ta réponse mais je ne comprend pas ta dernière ligne car je m'y suis mis à Bash que depuis peu de temps et j'ai encore du chemin à parcourir pour m'améliorer.
Selon moi, tu rajoute des paramètre pour que les virgule devienne des espaces mais cela sans que cela ne soit effectif tout le temps, si un moment donné tu dois taper tout simplement le nom de la varable sans aucun paramètre. Après je peux me tromper étant donner que je ne fais que la déduire et que je ne la comprend pas vraiment.
Sinon voici le code qui fonctionne à présent pour une liste à 4 choix possible :
La dernière ligne fait la même chose que ta ligne avec "sed". Dans bash on appelle ça le développement des paramètres. Là en l'occurrence c'est de la substitution de motif, tout comme sed, mais c'est propre au shell et on n'a pas besoin de faire appel à une commande externe.
Il aurait été plus simple d'expliquer directement ce que tu voulais, plutôt que de nous mettre l'équivalent en batch ;-(
D'autant que "sed" me parait inutile, bash pouvant traiter ta demande tout seul :