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
,