
По какой-то необъяснимой причине, когда я запускаю следующий код (минимизированный, очевидно), создается файл с именем "0". Может кто-нибудь объяснить, почему это происходит, и как этого избежать? Большое спасибо
#!/bin/bash
while [ 1 > 0 ]
do
exit
done
решение1
> 0
перенаправляет в файл с именем 0
. Примечание > something
или аналогичный синтаксисне обязательно должен быть в конце. Файл будет создан, даже если перенаправляемая команда не имеет смысла. В вашем случае команда есть [ 1 ]
и она синтаксически верна: она проверяет, 1
является ли строкой непустой.
Вы, вероятно, имели в виду [ 1 -gt 0 ]
. Смотрите help [
и help test | less
.