В оболочке Linux есть несколько операторов для перенаправления или передачи вывода команд в файл. В этом руководстве я покажу вам несколько способов перенаправления вывода echo в файл. Мы заменим содержимое файла выводом echo, затем добавим текст в существующий файл с помощью echo и, наконец, отправим текст в файл на удаленной системе по SSH.
Все приведенные здесь примеры работают на любом дистрибутиве Linux, например Ubuntu, Debian, Linux Mint, Rocky Linux и т.д.
Перенаправленние Echo в файл
Оператор ">" используется для замены содержимого файла текстом, который возвращается командой echo.
Синтаксис:
1 | echo "некоторый текст" > /path/to/file |
Пример:
1 | echo "Приветствую вас" > /tmp/test.txt |
Команда не покажет никакого результата в оболочке, весь вывод сохраняется в файл. Теперь проверим содержимое нашего файла /tmp/test.txt.
1 | cat /tmp/test.txt |
Добавление дополнительного содержимого в файл с помощью Echo
Во втором примере я добавлю содержимое в наш файл /tmp/test.txt без замены содержимого, содержимое будет добавлено в конец файла. Для добавления содержимого используется оператор ">>".
Синтаксис:
1 | echo "Некоторый текст для добавления" >> /path/to/file |
Пример:
1 | echo "Дополнительный текст" >> /tmp/test.txt |
Приведенная выше команда добавляет текст "Дополнительный текст" в файл /tmp/test.txt. Файл test.txt уже содержит текст "Приветствую вас" из нашего первого примера. Теперь давайте посмотрим, что находится в файле, я снова воспользуюсь командой cat, чтобы показать содержимое файла в оболочке
1 | cat /tmp/test.txt |
Echo в файл на удаленной системе
Иногда вам может понадобиться записать текст в файл, который находится на другой системе Linux. Если обе системы соединены через локальную сеть или Интернет, то для этого можно использовать SSH. Команда ssh имеет переключатель командной строки -f, чтобы передавать команды непосредственно по ssh, а затем переходить в фоновый режим, который позволяет ввести пароль (если требуется).
Пример:
1 | ssh user@remotesystem -f 'echo "Текст добавлен по SSH" >> /tmp/test.txt' |
Где "user" - это имя пользователя, под которым вы хотите войти на удаленный сервер или рабочий стол. Замените слово "remotesystem" на имя хоста или IP-адрес удаленного компьютера.
Я выполнил команду на удаленной системе, чтобы добавить некоторый текст в наш файл test.txt.