Mám soubor s názvem my_file.txt jehož obsahem je pouze řetězec Hello . Jak bych mohl přesměrovat jeho obsah na příkaz echo ?
Vím, že mám příkazy less , cat , more … ale musím to udělat pomocí echo .
Zkoušel jsem toto:
$ cat my_file.txt | echo
a také toto:
$ echo < my_file.txt
Ale v obou případech se v stdout objeví pouze prázdné místo, nikoli obsah souboru my_file.txt.
Jak jsem to mohl udělat?
Přijatá odpověď:
Vše, co chcete, můžete přesměrovat na echo ale nic s tím neudělá. echo nečte svůj standardní vstup. Jediné, co dělá, je zapsat na standardní výstup své argumenty oddělené mezerou a ukončené znakem nového řádku (a s trochou echo implementace s některými sekvencemi escape v nich rozšířenými a/nebo argumenty začínajícími - případně považovány za možnosti).
Pokud chcete echo pro zobrazení obsahu souboru musíte tento obsah předat jako argument do echo . Něco jako:
echo "$(cat my_file.txt)"
Všimněte si, že $(...) odstraní znak nového řádku na konci s z výstupu této cat příkaz a echo přidá jeden zpět.
Všimněte si také, že kromě zsh , nemůžete předat znaky NUL v argumentech příkazu, takže výše uvedené obvykle nebude fungovat s binárními soubory. yash také odstraní bajty, které netvoří součást platných znaků.
Pokud to chcete udělat proto, že chcete echo rozbalte n , b ,