J'ai besoin de transmettre une chaîne de caractères à un programme en tant qu'argument à partir de l'interface de ligne de commande Bash, par exemple
programme "ne pas faire cela"
La chaîne peut inclure n'importe quel caractère comme '$'
, '\'
, etc. et je ne veux pas que Bash fasse de modification. Alors je pense à utiliser des guillemets simples.
Cependant, ce qui suit ne fonctionne pas:
programme 'don\'t do this' //l'échappement ne fonctionne pas avec les guillemets simples
Alors que les deux suivants fonctionnent:
programme $'dont\'t do this' //semble fonctionner, mais y a-t-il d'autres effets secondaires?
programme 'dont'\''do this' //diviser en 3 parties
La première approche semble meilleure car elle nécessite moins de pré-modification (mettre le symbole du dollar devant et substituer chaque \
par \\
), mais je ne sais pas ce que le SYMBOLE DU DOLLAR pourrait faire d'autre.
J'ai vraiment fait des recherches sur Google mais je ne trouve pas ce dont j'ai besoin...