Saya memiliki file bernama my_file.txt
yang isinya hanya string Hello
. Bagaimana saya bisa mengarahkan kontennya ke perintah echo
?
Saya tahu saya memiliki perintah less
, cat
, more
… tapi saya harus melakukannya dengan echo
.
Saya mencoba ini:
$ cat my_file.txt | echo
dan juga ini:
$ echo < my_file.txt
Namun dalam kedua kasus itu hanya muncul kosong di stdout, bukan konten my_file.txt.
Bagaimana saya bisa melakukannya?
Jawaban yang Diterima:
Anda dapat mengarahkan semua yang Anda inginkan ke echo
tapi itu tidak akan melakukan apa-apa dengan itu. echo
tidak membaca input standarnya. Yang dilakukannya hanyalah menulis ke output standar argumennya dipisahkan oleh karakter spasi dan diakhiri dengan karakter baris baru (dan dengan beberapa echo
implementasi dengan beberapa urutan pelarian di dalamnya diperluas dan/atau argumen dimulai dengan -
mungkin diperlakukan sebagai opsi).
Jika Anda ingin echo
untuk menampilkan konten file, Anda harus meneruskan konten itu sebagai argumen ke echo
. Sesuatu seperti:
echo "$(cat my_file.txt)"
Perhatikan bahwa $(...)
menghapus karakter baris baru yang tertinggals dari output cat
. itu perintah, dan echo
menambahkan satu kembali.
Perhatikan juga bahwa kecuali dengan zsh
, Anda tidak dapat meneruskan karakter NUL dalam argumen perintah, sehingga di atas biasanya tidak akan berfungsi dengan file biner. yash
juga akan menghapus byte yang bukan merupakan bagian dari karakter yang valid.
Jika alasan ingin melakukannya adalah karena Anda ingin echo
untuk memperluas n
, b
,