$ echo > 1 2 3; ls -latr 1; cat 1
-rw-rw-r-- 1 kahn kahn 4 Jun 23 14:05 1
2 3
Связано ли это с оценкой перенаправления >
? Такой, что:
echo > 1 2 3
Можно также переписать как и технически:
echo 2 3 > 1
?
Существуют ли какие-либо ресурсы для лучшего понимания порядка операций с перенаправлением ввода-вывода и того, как он оценивается? Я признаю, что этот пример, вероятно, не был бы полезен или даже часто встречается, но я хотел бы лучше понять, что именно здесь происходит.
Слова разделены пробелами. Строка в кавычках рассматривается как одно слово независимо от пробелов. Значение переменной является кандидатом на разбиение на слова, когда оно используется (, поэтому обычно лучше всего заключать в двойные -кавычки имя переменной,"$var"
).
Оператор перенаправления использует следующее одиночное слово.
Полную информацию можно увидеть на справочной странице вашей оболочки (, например man bash
в разделе «Расширения»)
The order of expansions is: brace expansion, tilde expansion, parameter, variable and arithmetic expansion and command substitution (done in a left-to-right fashion), word splitting, and pathname expansion.