Как процитировать метки кавычек в строках в u-boot?

В настоящее время моя загрузочная строка (отображается с помощью env print ):

Если я хочу установить переменную в строку в u-boot, я делаю

 env set variable 'my string' 

Но что делать, если строка содержит символы кавычек? Я хочу добавить следующее в bootcmd :

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

Если я помещаю всю строку в кавычки (либо ' или " ), она работает, но кавычки вокруг 'on' отсутствуют.

Если я положил его с \'on\' он генерирует синтаксическую ошибку.

Если я помещаю его без кавычек, он выполняет роль после ; немедленно.

Как получить метки кавычек в значение переменной?

Дополнительная информация:

Что возвращает env print на «нетронутой» доске:

  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; 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; 

  • Почему U-Boot на Cubox постоянно перезагружается с ошибкой «** Файл не найден /boot.scr **»?
  • Действительно ли vmlinuz и bzImage одинаковы?
  • Переключение нескольких графических режимов при запуске
  • U-Boot env из Linux БЕЗ МПД
  • Почему u-boot начинается так поздно после того, как я даю власть
  • Как указать U-Boot не использовать uramdisk
  • Загрузка системы ARM с SD-карты с помощью uboot - как разместить все в одном разделе FAT?
  • Резервные изображения U-Boot
  • One Solution collect form web for “Как процитировать метки кавычек в строках в u-boot?”

    Для меня работает следующее:

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

    Я нашел это методом проб и ошибок. Похоже, вам нужно закончить строку с одним кавычком, затем добавить символ экранированного пэра-кавычки и снова открыть строку с одним кавычком, чтобы продолжить свою строку.

    Протестировано: U-Boot 2015.04

    Linux и Unix - лучшая ОС в мире.