Я тестировал сценарий, и требуемый для создания маленького файла с небольшим количеством текста в нем так я ввел следующее и забыл выходить из пространства в имени файла:
echo "bob">other name
Когда я сделал ls
, это показало файл "другой" и когда я сделал cat other
, это показало содержание как:
bob name
Как "имя" входило в файл? Я полагаю, что видел где-нибудь, что можно поместить перенаправление где угодно в команду. На самом деле я просто протестировал это:
echo >other Some text in a file
и "Некоторый текст в файле" был содержанием "другого".
Какова цель этой функции?
Конечно, первоначально, я должен был ввести:
echo "bob">other\ name
Это - то, как перенаправление удара работает.
Запись этого:
echo "bob">other name
эквивалентно этому:
echo "bob" name >other
перенаправление может появиться где угодно на строке, двойная угловая скобка (>
) только относится к "другому".
Это позволяет людям гибкость того, как они хотят структурировать свои команды. Если это смотрит более четкое выполнение чего-то вроде этого:
>file.txt echo "one" "two" "three"
затем это до человека, пишущего сценарий или команду.