Работа с путями и подстановкой команд
На этом этапе вы научитесь использовать команду echo
с подстановкой команд для вывода результатов выполнения других команд.
Подстановка команд в команде Echo
Подстановка команд позволяет заменить команду на ее вывод. Это делается с использованием синтаксиса $(command)
. Когда оболочка (shell) встречает такую конструкцию, она выполняет команду внутри скобок и заменяет всю конструкцию $(command)
на вывод этой команды.
Давайте используем подстановку команд для вывода текущей рабочей директории:
echo "Current directory: $(pwd)"
При выполнении этой команды вы должны увидеть вывод, похожий на следующий:
Current directory: /home/labex/project
В этом примере $(pwd)
заменяется на вывод команды pwd
, которая показывает текущую рабочую директорию.
Сохранение вывода в файл
Вы также можете перенаправить вывод команды echo
в файл вместо отображения его на экране. Это делается с использованием оператора перенаправления >
.
Давайте создадим файл с именем path_info.txt
в вашей проектной директории, который будет содержать информацию о текущем расположении:
cd ~/project
echo "Current path: $(pwd)" > path_info.txt
Эта команда создаст файл с именем path_info.txt
в вашей проектной директории с содержимым "Current path: /home/labex/project" (или любым другим текущим путем).
Для проверки содержимого файла вы можете использовать команду cat
:
cat path_info.txt
Вы должны увидеть вывод, похожий на следующий:
Current path: /home/labex/project
Оператор >
перенаправляет вывод команды echo
в указанный файл. Если файл уже существует, он будет перезаписан. Если вы хотите добавить информацию в существующий файл вместо его перезаписи, вы можете использовать оператор >>
.
Например, давайте добавим дату и время в наш файл:
echo "Current date and time: $(date)" >> path_info.txt
Теперь снова проверьте содержимое файла:
cat path_info.txt
Вы должны увидеть обе строки:
Current path: /home/labex/project
Current date and time: Wed Jan 5 10:15:30 UTC 2023
(Фактическая дата и время будут соответствовать текущей дате и времени вашей системы.)