У меня работает. Обратите внимание, что единственный способ получить эту ошибку - это если переменная I
не установлена. Я заметил, что вы использовали строчную букву для примера bash и прописную букву для примера fish. Возможно, вы перепутали дело? Например, это приведет к появившейся ошибке:
for i in *
true > $I
end
P.S., В оболочке POSIX более эффективно делать : > $i
. Поскольку fish не поддерживает :
, более эффективно сделать true > $i
, чтобы избежать появления внешней команды и открытия /dev/null.
.