Что такое отображение эха $ -1?

Что означает результат echo $-1 , echo $-2 , echo $-3 ..?

На одном из моих ящиков Linux это показывает мне:

 echo $-1 imsBEl1 echo $-2 imsBEl2 

И в другом Linux-окне он показывает:

 echo $-1 himBH1 echo $-2 himBH2 

Отображаются ли они в некоторых местах памяти или что-то еще?

  • Существует ли простой способ ограничения числа дочерних процессов, выполняемых параллельно?
  • Приложения GUI не наследуют PATH из консольных приложений для родителей
  • Использовать функцию bash в конвейерной команде
  • курсор и объединение диакритики в оболочке
  • Чтение цели символической ссылки и увеличение целевой
  • Возможность легко переключаться между каталогами в разных областях
  • Безопасная доля в самбе не работает, почему?
  • как подключиться к Mysql только один раз?
  • 4 Solutions collect form web for “Что такое отображение эха $ -1?”

    POSIX определил $ – как:

    (Hyphen.) Расширяется до текущих флажков опций (однобуквенные имена опций, объединенные в строку), как указано при вызове, заданной специальной встроенной командой или неявно оболочкой.

    Таким образом, $- может быть другой базой на вашей оболочке или как вы ее вызываете.

    1 или 2 – разделенный токен. Когда оболочка увидит unquote $ , он будет идентифицировать начало любых кандидатов для расширения параметров, подстановки команд или арифметического расширения. Он видел $- и расширил его, оставив все без изменений.

    Вы можете увидеть раздел распознавания токенов для более подробной информации.

    echo $- выводит параметры текущей оболочки (без префикса). 1 и 2 являются дополнительными не связанными токенами.

    Добавляя к ответу Мирослава:

    echo $- выводит параметры текущей оболочки (без префикса). 1 и 2 являются дополнительными не связанными токенами.

    Это означает, что это опции для каждой машины соответственно.

     imsBEl himBH 

    Я исследовал значение каждого флага и скомпилировал значения ниже, с небольшим перефразированием.

    Если присутствует опция -i, оболочка является интерактивной.

    -m

    Режим монитора. Управление заданием включено.

    -B

    Оболочка выполняет расширение скобки ( см. Расширение скобы). Это включено по умолчанию.

    -s

    Если присутствует опция -s или нет аргументов после обработки параметров, тогда команды считываются со стандартного ввода. Эта опция позволяет устанавливать позиционные параметры при вызове интерактивной оболочки.

    -E

    errtrace

    -l

    Сделать bash так, как если бы он был вызван как оболочка входа

    -час

    hashall

    -H Расширение истории

    Эта функция включена по умолчанию для интерактивных оболочек.

    Чтобы расширить существующие ответы, попробуйте echo "${-1}" и echo "${-2}" – вы получите ошибку «Bad substitution», потому что вместо использования -1 в качестве имени переменной используется дефис для замены значения, если имя переменной до того, как оно не определено. Например:

     $ unset foo $ echo "${foo-bar}" bar $ foo=test $ echo "${foo-bar}" test 
    Interesting Posts

    Проблема с сетью в IBM x3650 после установки Ubuntu 14.04.1

    sudo script – лучшая практика?

    Как сделать многопоточное приложение использовать все ядра на Ubuntu в VMWare?

    Почему вывод comm не показывает общие записи?

    Почему был отменен стандарт ANSI 3.64?

    это проблема доступа или проблема с правами?

    Что такое хороший терминал X не из основной среды окна?

    Почему некоторые команды имеют man-страницы и другие команды –help?

    Как я могу перечислить все строки после того, как два последующих шаблона будут сопоставлены, когда они не будут

    Установите byobu (профили экрана) на FreeBSD

    Почему соответствует строчным буквам в bash?

    Что произойдет с продолжением операции, если мы сделаем ssh, а затем отключим?

    Как правильно извлекать различные части `dirname` в сочетании с` find`?

    Как получить количество ссылок на файлы в папке с этими ссылками?

    Shell Script – как scp на удаленный сервер и загружать файлы и защищать пароль

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