Как запускать программы с аргументами типа «arg=val» (например, dd) в оболочке rc (версия Linux, портированная из ОС Plan9)?

Как запускать программы с аргументами типа «arg=val» (например, dd) в оболочке rc (версия Linux, портированная из ОС Plan9)?

Я пытаюсь использовать оболочку rc (порт Linux из ОС Plan9) и получаю сообщения «синтаксическая ошибка» при использовании программ с такими аргументами, какарг=значение.

; dd if=/dev/zero of=/dev/null
syntax error
; ls --color=auto
syntax error

Я предполагаю, что оболочка rc видит"="sign и обрабатывает оператор как присваивание переменной, а не запуск программы. Может быть, в Plan9 нет программы dd или других программ, использующих этот тип аргументов. Но как я могу использовать его в Linux, где они широко используются?

Я пытался сбежать"="типа dd if\=... of\=, не помогло.

Я пробовал цитировать аргументы типа dd 'if=/dev/zero' 'of=/dev/null' 'bs=1M' 'count=1'и это сработало. Но это не очень удобно. Есть ли другой более удобный способ?

Я использую rc shell из репозитория Ubuntu 11.10: версия пакета 1.7.1-3ubuntu1.

решение1

в соответствии с man rc:

Следующие символы являются специальными: # ; & | ^ $ = ` ' { } ( ) < > Одинарная кавычка (') предотвращает специальную обработку любого символа, кроме самого себя.

Так же =есть специальный символ, от которого вам нужно убежать.

Если вам не нравится синтаксис:

ls '--color=auto'

вы можете экранировать только =символ:

ls --color'='auto

но я не думаю, что это лучше.

Связанный контент