Ho un file chiamato my_file.txt il cui contenuto è solo la stringa Hello . Come potrei reindirizzare il suo contenuto al comando echo ?
So di avere i comandi less , cat , more … ma devo farlo con echo .
Ho provato questo:
$ cat my_file.txt | echo
e anche questo:
$ echo < my_file.txt
Ma in entrambi i casi appare solo uno spazio vuoto nello stdout, non il contenuto di my_file.txt.
Come potrei farlo?
Risposta accettata:
Puoi reindirizzare tutto ciò che desideri a echo ma non farà nulla con esso. echo non legge il suo input standard. Tutto ciò che fa è scrivere sullo standard output i suoi argomenti separati da uno spazio e terminati da un carattere di nuova riga (e con alcuni echo implementazioni con alcune sequenze di escape espanse e/o argomenti che iniziano con - eventualmente trattati come opzioni).
Se vuoi echo per visualizzare il contenuto di un file, devi passare quel contenuto come argomento a echo . Qualcosa come:
echo "$(cat my_file.txt)"
Nota che $(...) rimuove il carattere di nuova riga finales dall'output di quel cat comando e echo ne aggiunge uno indietro.
Nota anche che tranne con zsh , non puoi passare i caratteri NUL negli argomenti di un comando, in modo che sopra in genere non funzioni con i file binari. yash rimuoverà anche i byte che non fanno parte di caratteri validi.
Se il motivo per volerlo fare è perché vuoi echo per espandere il n , b ,