Eche un vistazo a este script primero:
touch test.txt
touch loc
echo "result1" > loc
loc >> test.txt
echo "result2" > loc
loc >> test.txt
rm loc
Creo dos archivos. Uno de ellos, loc
es temporal e intento escribir en él pero aparece el siguiente mensaje de error:
5: script.sh: loc: not found
8: script.sh: loc: not found
¿Cómo puedo hacer que funcione?
Respuesta1
loc
no es una orden. Debería utilizarlo cat loc >> test.txt
para agregarlo a text.txt. De lo contrario, también puedes evitar el archivo temporal por completo:
echo "result1" >> test.txt
echo "result2" >> test.txt
Tenga en cuenta que touch test.txt
también parece inútil.
Respuesta2
esto creará el test.txt
echo "result1" | tee -a test.txt
echo "result2" | tee -a test.txt
O use esto en 1 paso
echo "result1" && echo "result2" | tee -a test.txt
Respuesta3
El operador de redirección espera una cadena o flujo de caracteres como lado de entrada y un archivo en el otro lado. Por lo tanto, debe usar cat
el comando para leer primero el archivo y luego redirigir los caracteres de la secuencia al archivo de salida.
touch test.txt
touch loc
echo "result1" > loc
cat loc >> test.txt
echo "result2" > loc
cat loc >> test.txt
rm loc