Так это выглядит, как вы хотите, чтобы объединить несколько файлов, я думаю, что я бы рассматривать это как законное использование cat
:
cat /home/FileSystemCorruptionTest/*.chk | while read -r line
do
echo "$line"
done > /home/FileSystemCorruptionTest/`date +%Y_%m_%d_%H_%M_%S`_1.log
Обратите внимание, что я переместил перенаправление из цикла, чтобы предотвратить перезапись файла один раз в строке.
отметить также, что ваш пример может быть легко записать в виде:
cat /home/FileSystemCorruptionTest/*.chk > /home/FileSystemCorruptionTest/`date +%Y_%m_%d_%H_%M_%S`_1.log
Если вы на самом деле только один файл (и хотите сохранить его в переменной), то вы можете использовать <<<
после цикла:
while read -r line
do
echo "$line"
done <<<"$FILE" > /home/FileSystemCorruptionTest/`date +%Y_%m_%d_%H_%M_%S`_1.log
<<< "$FILE"
имеет тот же эффект, что и использование echo "$FILE" |
перед циклом, но это не создает никаких подоболочки.
Это пример игрушки? почему вы читаете файл в переменной? –
Я читаю содержимое файла в переменной, потому что у меня будет много циклов, идущих друг за другом. – visc
На самом деле это не объясняет, почему вы не просто 'cat' файл в файл журнала. Чего вы на самом деле хотите достичь? Использование цикла оболочки для обработки строки строки за строкой часто является тем, чего вы хотите избежать. – tripleee