временный файл не найден в скрипте sh

временный файл не найден в скрипте sh

Сначала взгляните на этот сценарий:

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

Связанный контент