Что такое echo ' \ nlocalhost \ n'> / etc?

RUN echo '[local]\nlocalhost\n' > /etc/ansible/hosts 

Эта строка находится в моем файле docker, и я предполагаю, что это просто означает добавить localhost в файл ansible / hosts?

Может кто-то сломать, что [local] \ nlocalhost \ n немного более подробно, чтобы newb мог понять?

  • Что случилось с этой командой xargs?
  • Является ли btrfs достаточно стабильным для домашнего использования?
  • Как вставить содержимое файла в другой файл перед шаблоном (маркером)?
  • Можно ли сгруппировать имя пользователя и имя пользователя другого пользователя?
  • Странное поведение с использованием последовательного порта и Bluetooth
  • Каковы основные отличия между ядрами Unix и Linux сегодня?
  • Какова наилучшая практика добавления дисков в LVM
  • sed + удалить строки, содержащие строку, кроме строк с
  • Почему в папку рабочего стола не загружается «sudo bash && cd desktop»?
  • Почему процесс не существует (кажется) существует до того, как читать
  • Программа, которая может буферизовать stdin или файл
  • Были ли все команды Unix переписаны в Linux?
  • 2 Solutions collect form web for “Что такое echo ' \ nlocalhost \ n'> / etc?”

    Эта строка сообщает Docker запустить команду оболочки: echo '[local]\nlocalhost\n' > /etc/ansible/hosts

    Эта команда оболочки напечатает следующий текстовый блок в файле /etc/ansible/hosts :

     [local] localhost 

    Он делает это, потому что \n является символом «новой строки», сигнализирующим о начале новой текстовой строки. Это означает, что echo было поручено сделать следующее: распечатать текст [local] , затем запустить новую строку, распечатать localhost и, наконец, запустить еще одну новую строку. Этот выход перенаправляется с помощью специального символа > , а адресат после перенаправления указывается как /etc/ansible/hosts . Хотя этот файл может не иметь расширения .txt , вы можете представить его как обычный текстовый файл.

    Этот файл, вероятно, указан, потому что он используется Ansible для связи с разными хостами (в данном случае с локальным хостом) через свои функции инвентаризации .

    Так что да, вы были в основном правы – это добавляет localhost в файл Ansible hosts. Стоит отметить, что эта команда перезапишет любой существующий файл на /etc/ansible/hosts .

    Линия, о которой идет речь:

     RUN echo '[local]\nlocalhost\n' > /etc/ansible/hosts 

    похоже, запускает команду echo и использует символ перенаправления оболочки > для отправки вывода команды echo в файл /etc/ansible/hosts .

    Здесь есть две вещи:

    • В команде echo последовательность \n обозначает символ новой строки (клавиша Enter ). Таким образом, [local] и localhost фактически отражаются в файле по последовательным линиям. Это соответствует правильному формату строфы в /etc/ansible/hosts как описано здесь . (Я не знаю достаточно о возможности сообщить вам, почему здесь используется хост-имя localhost вместо IP-адреса 127.0.0.1 .)

    • Символ перенаправления оболочки > перезапишет ( /etc/ansible/hosts и заменит) содержимое /etc/ansible/hosts а не добавит эту новую строфу в конец файла. (Чтобы перенаправить и добавить к файлу, вместо этого вы должны использовать >> ).

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