Comment citer les guillemets dans les strings dans u-boot?

Actuellement, ma string de démarrage (affichée avec env print ) est:

Si je veux mettre une variable dans une string dans u-boot, je fais

 env set variable 'my ssortingng' 

Mais que faire si la string contient les caractères de citation? Je veux mettre ce qui suit dans bootcmd :

 if test ${jpsdboot} = 'on' ; then run sdboot; else run emmcboot; fi; 

Si je mets la string entière entre guillemets (soit ' ou " ), cela fonctionne mais les guillemets autour de 'on' sont manquants.

Si je le mets avec \'on\' il génère une erreur de syntaxe.

Si je le mets sans guillemets, il exécute la partie après ; immédiatement.

Comment get les guillemets dans la valeur de la variable?

Information additionnelle:

Qu'est-ce env print renvoie sur un tableau «vierge»:

  bootcmd=run usbprod; if test ${jpsdboot} = 'on' ; then run sdboot; else run emmcboot; fi; 

Ce que mes différents essais ont produit:

  U-Boot > env set bootcmd 'run usbprod; if test ${jpsdboot} = 'on' ; then run sdboot; else run emmcboot; fi;' bootcmd=run usbprod; if test ${jpsdboot} = on ; then run sdboot; else run emmcboot; fi; U-Boot > env set bootcmd 'run usbprod; if test ${jpsdboot} = \'on\' ; then run sdboot; else run emmcboot; fi;' syntax error U-Boot > env set bootcmd run usbprod; if test ${jpsdboot} = 'on' ; then run sdboot; else run emmcboot; fi; Booting from the SD card ... U-Boot > env set bootcmd "run usbprod; if test ${jpsdboot} = 'on' ; then run sdboot; else run emmcboot; fi;" bootcmd=run usbprod; if test on = on ; then run sdboot; else run emmcboot; fi; U-Boot > env set bootcmd "run usbprod; if test ${jpsdboot} = \\'on\\' ; then run sdboot; else run emmcboot; fi;" bootcmd=run usbprod; if test on = \\on ; then run sdboot; else run emmcboot; fi; U-Boot > env set bootcmd "run usbprod; if test \${jpsdboot} = \'on\' ; then run sdboot; else run emmcboot; fi;" bootcmd=run usbprod; if test \\${jpsdboot} = \\'on\\' ; then run sdboot; else run emmcboot; fi; U-Boot > env set bootcmd 'run usbprod; if test ${jpsdboot} = \\'on\\' ; then run sdboot; else run emmcboot; fi;' bootcmd=run usbprod; if test ${jpsdboot} = \\on\\ ; then run sdboot; else run emmcboot; fi; 

Les travaux suivants pour moi:

 U-Boot> setenv bootcmd 'if test ${jpsdboot} = ' \''on'\' '; then run sdboot; else run emmcboot; fi;' 

J'ai trouvé cela par essais et erreurs. Il semble que vous ayez besoin de mettre fin à la string entre guillemets, puis d'append le caractère de guillemet simple échappé et d'ouvrir à nouveau la string entre guillemets pour continuer avec votre string.

Testé: U-Boot 2015.04