Сначала взгляните на этот сценарий:
touch test.txt
touch loc
echo "result1" > loc
loc >> test.txt
echo "result2" > loc
loc >> test.txt
rm loc
Я создаю два файла. Один из них, loc
, временный, и я пытаюсь записать в него, но получаю следующее сообщение об ошибке:
5: script.sh: loc: not found
8: script.sh: loc: not found
Как мне заставить это работать?
решение1
loc
не является командой. Вам нужно будет использовать cat loc >> test.txt
для добавления его в text.txt. В противном случае вы также можете полностью избежать временного файла:
echo "result1" >> test.txt
echo "result2" >> test.txt
Заметьте, touch test.txt
кажется, тоже бесполезно.
решение2
это создаст test.txt
echo "result1" | tee -a test.txt
echo "result2" | tee -a test.txt
ИЛИ используйте это в 1 шаге
echo "result1" && echo "result2" | tee -a test.txt
решение3
Оператор перенаправления ожидает строку или поток символов в качестве входной стороны и файл на другой стороне. Поэтому вам нужно использовать cat
команду, чтобы сначала прочитать файл, а затем перенаправить поток символов в выходной файл.
touch test.txt
touch loc
echo "result1" > loc
cat loc >> test.txt
echo "result2" > loc
cat loc >> test.txt
rm loc