Escape-последовательности с “эхом-e” в различных оболочках

Посмотрите, если можно скрыть реальные диски если Ваш активировать набег. Это - возможно установка в основном или RAID-BIOS Вашего ПК.

У меня были подобные проблемы с CentOS 5.5, который ушел после обновления 5,6.

После просмотра веб-сайтов немного об этих pseudo-raid-devices я последовал совету, данному там, и деактивировал его. Впоследствии я восстанавливаю к чистому набегу программного обеспечения с чистыми средствами Linux (man mdadm).

На пути я не освободил данных и получил много пространства - я поместил некоторые свои разделы в RAID0-конфигурацию для данных, которые должны быть быстрыми и могут быть восстановлены очень легко.

20
28.08.2013, 00:34
3 ответа

Поскольку Вы использовали sh, нет bash, затем echo команда в sh не имеет опции -e. От sh страница справочника:

echo [-n] args...
            Print the arguments on the standard output, separated by spaces.
            Unless the -n option is present, a newline is output following the
            arguments.

И это не имеет \e, также:

        If any of the following sequences of characters is encountered
        during output, the sequence is not output.  Instead, the specified
        action is performed:

        \b      A backspace character is output.

        \c      Subsequent output is suppressed.  This is normally used at
                the end of the last argument to suppress the trailing new‐
                line that echo would otherwise output.

        \f      Output a form feed.

        \n      Output a newline character.

        \r      Output a carriage return.

        \t      Output a (horizontal) tab character.

        \v      Output a vertical tab.

        \0digits
                Output the character whose value is given by zero to three
                octal digits.  If there are zero digits, a nul character
                is output.

        \\      Output a backslash.

        All other backslash sequences elicit undefined behaviour.
20
27.01.2020, 19:44
  • 1
    Несколько sh поддержка реализаций echo -e, во время компиляции bash может быть сказан не поддерживать echo -e. Это просто что тот конкретный sh (вероятно, dash) не поддерживает -e в то время как та деталь bash делает. –  Stéphane Chazelas 27.08.2013, 08:41

-e не POSIX (на самом деле, эхо POSIX обычно не принимает опций (хотя позволяется поддерживать -n), посмотрите здесь), и /bin/sh в Вашей системе, кажется, оболочка POSIX. -e расширение, принятое в некоторых оболочках, но Вы не должны полагаться на него, это не портативно. Идеально, использовать printf, или переключитесь на использование оболочки, которая имеет echo -e.

Также посмотрите протесты \e в комментариях ниже, который должен быть заменен \033.

printf '\033[3;12r\033[3H'
17
27.01.2020, 19:44
  • 1
    как gnouc указывает, sh не распознает \e также. Использовать \033 –  rici 27.08.2013, 06:15

Обратите внимание, что в любое время и почти в любой оболочке, можно выяснить, какое "эхо" назовут путем ввода type echo или which echo. Это обычно - встроенная оболочка. Таким образом, это зависит, на котором установлено "эхо" и на которой оболочке Вы используете.

4
27.01.2020, 19:44
  • 1
    which echo не должен использоваться, это, вероятно, не скажет Вам при использовании встроенного потому что which обычно внешний двоичный файл. type хорошо, все же. –  Chris Down 27.08.2013, 13:09
  • 2
    Хорошо определенный, хотя на моей основной оболочке (zsh), это - встроенное (как показано type which или which which). ;) –  piojo 27.08.2013, 13:10

Теги

Похожие вопросы