Команды в конвейере выполняются одновременно. Поэтому, когда вы пишете
date > date.txt | cut --delimiter '' --fields 1 < date.txt
cut
может попытаться прочитать файл до того, как date
запишет в него, и нечего читать. Нет необходимости в конвейере, если вы используете файл для связи, просто пишите команды последовательно.
date > date.txt
cut --delimiter '' --fields 1 < date.txt