Atualmente, minha string de inicialização (exibida com env print
) é:
Se eu quiser definir uma variável para uma string no u-boot, eu faço
env set variable 'my string'
Mas o que fazer se a string contiver os caracteres de aspas? Eu quero colocar o seguinte em bootcmd
:
if test ${jpsdboot} = 'on' ; then run sdboot; else run emmcboot; fi;
Se eu colocar a string inteira entre aspas ( '
ou "
), ele funciona, mas as aspas em torno de 'on'
estão faltando.
Se eu colocar com \'on\'
, isso gerará um erro de sintaxe.
Se eu colocá-lo sem aspas, ele executa a parte depois de ;
imediatamente.
Como obter as marcas de aspas no valor da variável?
Informação adicional:
O que env print
retorna em uma placa "pura":
bootcmd=run usbprod; if test ${jpsdboot} = 'on' ; then run sdboot; else run emmcboot; fi;
O que minhas várias tentativas produziram:
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;