понимание выхода эха, за которым следуют некоторые восклицательные знаки

Я снова играл с echo $$ . Хорошо, что отображает этот pid оболочки. Но потом я сделал echo ! который быстро отображается!. Тогда echo !! произведенный

 echo echo ! echo ! 

$echo !!! дал

 echo echo echo !! echo echo !! 

Я не мог понять результаты. Насколько я знаю, echo !! дает последнюю команду, которая была выполнена в оболочке. Но результаты, которые я получаю здесь, странны для меня, чтобы понять. Я использую оболочку bash.

  • Почему printf лучше, чем эхо?
  • Как распечатать «-E» в bash echo?
  • Команда Whatis (встроенная оболочка для исполняемых программ)
  • Проблемы при попытке вывести цвета в bash
  • Почему нет новой строки в конце цитирования подоболочки и передачи результатов для эха?
  • отметка времени перед эхом
  • Как поместить символ новой строки в файл с помощью команды echo и оператора перенаправления?
  • Echo newline с кавычками
  • 2 Solutions collect form web for “понимание выхода эха, за которым следуют некоторые восклицательные знаки”

    Обозначение события истории !! заменяется последней командой в вашей истории. Сначала Bash выводит команду, как она будет выполнена, а затем выполняет ее.

    Пример:

     $ foo foo: command not found $ !! foo # command to be executed foo: command not found # result of execution 

    В твоем случае:

     $ echo ! ! $ echo !! echo echo ! # command to be executed echo ! # result of execution $ echo !!! echo echo echo !! # command to be executed echo echo !! # result of execution 

    Обратите внимание, что команда с обозначением события не вводится в историю как введенная. Сначала расшифровывается обозначение события, а затем команда вводится в историю. Вот почему в третьей команде ( echo !!! ), обозначение события не заменяется echo !! (введенная вторая команда), но echo echo ! (расширенная вторая команда).

    Вот последняя команда с выделенной частью:

     $ echo (!!)! echo (echo echo !)! # command to be executed echo echo !! # result of execution 

    Если вы используете !! что он заменяется последней командой в оболочке, поэтому первая строка – это отображение echo echo ! подстановки echo echo ! а второйвыходное echo !

    Interesting Posts

    Работа с файлами rar

    Изменение устройства вывода данных по умолчанию для каждого пользователя

    Создать версию с помощью tar

    Захват области экрана без рабочей среды?

    Обновление glibc до 2.21 на CentOS

    Как вы добавляете IP-адрес виртуальной сети из командной строки ядра?

    Рабочий стол внезапно перестает реагировать на мышь (перемещение / фокусировка / щелканье элементов пользовательского интерфейса)

    Запуск SQL-запроса как пользователя root в скрипте init.d?

    В MATE, как мне получить разные панели на рабочее пространство?

    Нужно найти cronjob

    Как перечислить все файлы в каталоге с абсолютными путями

    Не удается открыть графические редакторы в режиме суперпользователя

    одновременные крепления devpts

    Самый легкий дистрибутив Debian для Linux: только консоль – StandAlone (не сетевая установка)

    Идентификатор сообщения об ошибке: не удается найти имя для идентификатора группы после входа в систему

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