5

Я тестировал скрипт и хотел создать небольшой файл с небольшим количеством текста, поэтому набрал следующее и забыл пробел в имени файла:

echo "bob">other name

Когда я сделал ls , он показал файл "прочее", а когда я сделал cat other , он показал содержимое как:

bob name

Как "имя" попало в файл? Мне кажется, я где-то видел, что вы можете поместить перенаправление в любую команду. На самом деле, я только что проверил это:

echo >other Some text in a file

и "Некоторый текст в файле" был содержимым "другого".

Какова цель этой функции?

Конечно, изначально я должен был набрать:

echo "bob">other\ name

1 ответ1

13

Вот как работает перенаправление bash.

Написание этого:

echo "bob">other name

эквивалентно этому:

echo "bob" name >other

перенаправление может появиться в любом месте строки, шеврон (>) применяется только к "другому".

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

>file.txt echo "one" "two" "three"

тогда это до человека, пишущего сценарий или команду.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .