Cara Menggunakan Perintah Echo di Linux
The echo
arahan sesuai untuk menulis teks diformat ke tetingkap terminal. Dan tidak semestinya teks statik. Ini boleh merangkumi pemboleh ubah shell, nama fail, dan direktori. Anda juga boleh mengarahkan gema untuk membuat fail teks dan fail log. Ikuti panduan ringkas ini untuk mengetahui caranya.
Echo Mengulangi Apa yang Anda Katakan untuk Diulang
Zeus gemar meninggalkan Gunung Olympus untuk bersekutu dengan nimfa yang cantik. Dalam satu perjalanan, dia memberitahu seorang nimfa gunung yang disebut Echo untuk memerintahkan isterinya, Hera, jika dia mengikutinya. Hera datang mencari Zeus, dan Echo berusaha sedaya upaya agar Hera terus berbual. Akhirnya, Hera hilang sabar dan mengutuk Echo yang malang sehingga dia hanya mengulangi kata-kata terakhir yang diucapkan oleh orang lain. Apa yang Hera lakukan kepada Zeus ketika dia mengejarnya adalah dugaan siapa pun.
Dan itu, cukup banyak, echo
dalam kehidupan. Ia mengulangi apa yang diberitahu untuk diulang. Itu fungsi yang mudah, tetapi yang penting. Tanpa echo
, kita tidak dapat memperoleh output yang dapat dilihat dari skrip shell, misalnya.
Walaupun tidak dibebani dengan banyak loceng dan wisel, ada peluang baik yang echo
mempunyai beberapa kemampuan yang tidak anda ketahui atau yang anda lupakan.
bergema? bergema!
Sebilangan besar sistem Linux menyediakan dua versi echo
. Shell Bash mempunyai echo
binaannya sendiri , dan terdapat versi binari yang dapat dilaksanakan echo
juga.
Kita dapat melihat dua versi yang berbeza dengan menggunakan perintah berikut:
taipkan gema
di mana gema
The type
arahan memberitahu kita sama ada arahan kita lulus kepadanya sebagai hujah ialah builtin shell, boleh laku perduaan, alias, atau fungsi. Ia melaporkan kepada kita bahawa itu echo
adalah shell builtin.
Sebaik sahaja mendapat jawapan, type
berhenti mencari perlawanan yang lebih jauh. Oleh itu, ia tidak memberitahu kita jika terdapat perintah lain dengan nama yang sama di dalam sistem. Tetapi ia memberitahu kita mana yang pertama dijumpainya. Dan itulah yang akan digunakan secara lalai ketika kita mengeluarkan perintah itu.
Yang whereis
kelihatan arahan untuk boleh laku perduaan, kod sumber, dan halaman lelaki untuk arahan kita lulus kepadanya sebagai parameter baris arahan itu. Ia tidak mencari shell builtin kerana mereka tidak mempunyai binary yang boleh dilaksanakan. Mereka adalah bahagian tidak terpisahkan dari Bash yang dapat dilaksanakan.
The whereis
laporan arahan yang echo
adalah laku perduaan terletak di /bin
direktori.
Untuk menggunakan versi itu, echo
anda perlu memanggilnya secara eksplisit dengan memberikan jalan ke yang dapat dijalankan pada baris perintah:
/ bin / gema - penukaran
Shell shell tidak tahu apa --version
argumen baris perintah itu, hanya mengulanginya di tetingkap terminal:
gema - penukaran
Contoh yang ditunjukkan di sini semuanya menggunakan versi lalai echo
, dalam shell Bash.
Menulis Teks ke Terminal
Untuk menulis rentetan teks sederhana ke tetingkap terminal, ketik echo
dan rentetan yang anda mahu paparkan:
echo Nama saya Dave.
Teks diulang untuk kita. Tetapi semasa anda bereksperimen, anda akan segera mengetahui bahawa perkara boleh menjadi lebih rumit. Lihat contoh ini:
echo Nama saya Dave dan saya geek.
Tingkap terminal memaparkan >
tanda dan duduk di sana, menunggu. Ctrl + C akan mengembalikan anda ke command prompt. Apa yang berlaku di sana?
Petikan tunggal atau kerasulan dalam perkataan "Saya" keliru echo
. Ia mentafsirkan petikan tunggal itu sebagai permulaan bahagian teks yang dipetik. Kerana tidak mengesan petikan tunggal penutup, echo
sedang menunggu lebih banyak input. Ia menjangkakan bahawa input lebih lanjut akan memasukkan petikan tunggal yang hilang yang ditunggu-tunggu.
Untuk memasukkan satu petikan dalam rentetan, penyelesaian paling mudah adalah membungkus keseluruhan rentetan dalam tanda petik berganda:
echo "Nama saya Dave dan saya geek."
Membungkus teks anda dalam tanda petik berganda adalah nasihat umum yang baik. Dalam skrip, ia dengan jelas membatasi parameter yang anda sampaikan echo
. Ini menjadikan pembacaan - dan penyahpepijatan - skrip menjadi lebih mudah.
Bagaimana jika anda mahu memasukkan watak petikan ganda dalam rentetan teks anda? Itu mudah, letakkan garis miring terbalik \
di hadapan tanda petik berganda (tanpa ruang di antara mereka).
echo "Nama saya Dave dan saya \" geek. \ ""
Ini membungkus perkataan "geek" dalam tanda petik berganda bagi kita. Kami akan melihat lebih banyak watak yang dilarikan dari garis miring terbalik ini tidak lama lagi.
Menggunakan Pemboleh ubah Dengan gema
Setakat ini, kami telah menulis teks yang telah ditentukan ke tetingkap terminal. Kita boleh menggunakan pemboleh ubah dengan echo
untuk menghasilkan output yang lebih dinamik dan mempunyai nilai yang dimasukkan ke dalamnya oleh shell. Kita boleh menentukan pemboleh ubah mudah dengan arahan ini:
my_name = "Dave"
Pemboleh ubah yang dipanggil my_name
telah dibuat. Telah diberikan nilai teks "Dave." Kita boleh menggunakan nama pemboleh ubah dalam rentetan yang kita sampaikan echo
, dan nilai pemboleh ubah akan ditulis ke tetingkap terminal. Anda mesti meletakkan tanda dolar $
di hadapan nama pemboleh ubah untuk memberitahu echo
bahawa ia adalah pemboleh ubah.
Ada peringatan. Sekiranya anda membungkus tali anda dalam tanda petikan tunggal, anda echo
akan memperlakukan semuanya secara harfiah. Untuk mempunyai pembolehubah nilai dipaparkan, dan bukan nama pembolehubah, gunakan tanda petikan berganda.
echo 'Nama saya $ my_name'
gema "Nama saya $ my_name"
Agak pantas, perlu diulang:
- Menggunakan tanda petikan tunggal menghasilkan teks ditulis ke tetingkap terminal secara literal .
- Menggunakan tanda petik berganda menyebabkan pemboleh ubah ditafsirkan - juga disebut pemboleh ubah pengembangan - dan nilainya ditulis ke tetingkap terminal.
BERKAITAN: Cara Bekerja dengan Pembolehubah di Bash
Menggunakan Perintah Dengan gema
Kita dapat menggunakan perintah dengan echo
dan memasukkan outputnya ke dalam string yang ditulis ke tetingkap terminal. Kita mesti menggunakan tanda dolar $
seolah-olah perintah itu berubah-ubah, dan membungkus keseluruhan perintah dalam kurungan.
Kami akan menggunakan arahan tarikh. Satu petua adalah menggunakan perintah itu sendiri sebelum anda mula menggunakannya echo
. Dengan cara itu, jika ada sesuatu yang salah dengan sintaks perintah anda, anda mengenal pasti dan membetulkannya sebelum memasukkannya ke dalam echo
perintah. Kemudian, jika echo
perintah itu tidak melakukan apa yang anda harapkan, anda akan tahu bahawa masalahnya mesti berlaku dengan echo
sintaks kerana anda sudah membuktikan sintaks perintah.
Oleh itu, cubalah ini di tetingkap terminal:
tarikh +% D
Dan, berpuas hati bahawa kami mendapat apa yang kami harapkan dari perintah tarikh, kami akan mengintegrasikannya ke dalam echo
perintah:
echo "Tarikh hari ini ialah: $ (tarikh +% D)"
Perhatikan arahan berada di dalam kurungan dan tanda dolar $
tepat sebelum kurungan pertama.
Memformat Teks Dengan gema
Pilihan -e
(aktifkan garis miring balik) membolehkan kita menggunakan beberapa watak yang dilarikan dengan garis miring terbalik untuk mengubah susun atur teks. Ini adalah watak yang dilarikan dari garis miring terbalik yang boleh kita gunakan:
- \ a : Makluman (secara historis dikenali sebagai BEL). Ini menghasilkan bunyi amaran lalai.
- \ b : Menulis watak ruang belakang.
- \ c : Meninggalkan sebarang output selanjutnya.
- \ e : Menulis watak pelarian.
- \ f : Menulis watak suapan bentuk.
- \ n : Menulis baris baru.
- \ r : Menulis perjalanan pulang.
- \ t : Menulis tab mendatar.
- \ v : Menulis tab menegak.
- \\ : Menulis watak garis miring terbalik.
Mari gunakan sebahagian daripadanya dan lihat apa yang mereka lakukan.
echo -e "Ini adalah baris teks yang panjang \ nmemisah tiga baris \ ndengan \ ttabs \ ton \ tthe \ tthird \ tline"
Teks dibahagikan kepada baris baru di mana kita telah menggunakan \n
watak - watak dan tab dimasukkan di mana kita telah menggunakan \t
watak - watak.
echo -e "Di sini \ vare \ vvertical \ vtabs"
Seperti \n
watak baris baru, tab menegak \v
memindahkan teks ke baris di bawah. Tetapi, tidak seperti \n
watak baris baru, \v
tab menegak tidak memulakan baris baru pada lajur sifar. Ia menggunakan lajur semasa.
The \b
aksara backspace menggerakkan kursor belakang satu aksara. Sekiranya terdapat lebih banyak teks yang akan ditulis ke terminal, teks itu akan menimpa watak sebelumnya.
gema -e "123 \ b4"
"3" ditulis lebih banyak oleh "4".
The \r
watak pembawa kembali menyebabkan echo
untuk kembali ke permulaan baris semasa dan menulis sebarang teks lagi dari ruangan sifar.
echo -e "123 \ r456"
Aksara "123" diganti dengan watak "456".
The \a
watak amaran akan menghasilkan "bleep." Boleh didengar Ia menggunakan suara amaran lalai untuk tema semasa anda.
echo -e "Buat b \ n"
Pilihan -n
(tidak ada baris baru) bukan urutan yang dilarikan dari garis miring terbalik, tetapi ia mempengaruhi kosmetik susun atur teks, jadi kami akan membincangkannya di sini. Ini menghalang echo
daripada menambahkan baris baru pada akhir teks. Perintah arahan muncul tepat selepas teks yang ditulis ke tetingkap terminal.
echo -n "tiada baris baru akhir"
Menggunakan gema Dengan Fail dan Direktori
Anda boleh menggunakan echo
sebagai jenis versi orang miskin ls
. Pilihan anda sedikit dan jauh di antara ketika anda menggunakan echo
seperti ini. Sekiranya anda memerlukan kesetiaan atau kawalan yang baik, anda lebih baik menggunakan ls
dan pilihannya.
Perintah ini menyenaraikan semua fail dan direktori dalam direktori semasa:
gema *
Perintah ini menyenaraikan semua fail dan direktori di direktori semasa yang namanya dimulai dengan "D":
gema D *
Perintah ini menyenaraikan semua fail ".desktop" dalam direktori semasa:
echo * .desktop
Yeah. Ini tidak sesuai dengan echo
kekuatan. Gunakan ls
.
Menulis ke Fail dengan gema
Kita dapat mengalihkan output dari echo
dan membuat fail teks atau menulis ke fail teks yang ada.
Sekiranya kita menggunakan >
operator pengalihan, fail akan dibuat jika tidak ada. Sekiranya fail itu wujud, output dari echo
ditambahkan pada awal fail, menimpa kandungan sebelumnya.
Sekiranya kita menggunakan >>
operator pengalihan, fail akan dibuat jika tidak ada. Keluaran dari echo
ditambahkan ke akhir fail dan tidak menimpa kandungan fail yang ada.
gema "Membuat fail baru." > sample.txt
echo "Menambah ke fail." >> sample.txt
sampel kucing.txt
Fail baru dibuat oleh perintah pertama, dan teks dimasukkan ke dalamnya. Perintah kedua menambah sebaris teks ke bahagian bawah fail. The cat
arahan memaparkan kandungan fail ke tetingkap terminal.
Dan tentu saja, kita boleh memasukkan pemboleh ubah untuk menambahkan beberapa maklumat berguna ke fail kita. Sekiranya fail itu adalah logfile, kami mungkin mahu cap waktu ditambahkan ke dalamnya. Kita boleh melakukannya dengan arahan seterusnya.
Perhatikan tanda petikan tunggal di sekitar parameter untuk date
perintah tersebut. Mereka menghalang jarak antara parameter yang ditafsirkan sebagai akhir senarai parameter. Mereka memastikan parameter diteruskan dengan date
betul.
echo "Logfile dimulakan: $ (tarikh + '% D% T')"> logfile.txt
catfile.txt kucing
Log log kami dibuat untuk kami dan cat
menunjukkan bahawa cap data dan cap waktu kedua-duanya ditambahkan ke dalamnya.
BERKAITAN: Apakah stdin, stdout, dan stderr di Linux?
Itulah Repertoire gema
Perintah yang mudah, tetapi sangat diperlukan. Sekiranya tidak ada, kita harus menciptanya.
Shenanigans Zeus melakukan beberapa kebaikan.