arquivo temporário não encontrado no script sh

arquivo temporário não encontrado no script sh

Dê uma olhada neste script primeiro:

touch test.txt
touch loc

echo "result1" > loc
loc >> test.txt

echo "result2" > loc
loc >> test.txt

rm loc

Eu crio dois arquivos. Um deles, loc, é temporário e tento escrever nele, mas recebo a seguinte mensagem de erro:

5: script.sh: loc: not found
8: script.sh: loc: not found

Como posso fazê-lo funcionar?

Responder1

locnão é um comando. Você precisaria usar cat loc >> test.txtpara anexá-lo ao text.txt. Caso contrário, você também pode evitar completamente o arquivo temporário:

echo "result1" >> test.txt
echo "result2" >> test.txt

Note, touch test.txttambém parece inútil.

Responder2

isso criará o test.txt

echo "result1" |  tee -a  test.txt
echo "result2" |  tee -a  test.txt

OU use isso em uma etapa

echo "result1" && echo "result2" |  tee -a  test.txt

Responder3

O operador de redirecionamento espera uma string ou fluxo de caracteres como entrada e um arquivo no outro lado. Portanto, você precisa usar cato comando para primeiro ler o arquivo e depois redirecionar os caracteres do fluxo para o arquivo de saída.

touch test.txt
touch loc
echo "result1" > loc
cat loc >> test.txt
echo "result2" > loc
cat loc >> test.txt
rm loc

informação relacionada