Cara Menggunakan Perintah Echo di Linux

The echoperintah sempurna untuk menulis teks diformat ke jendela terminal. Dan itu tidak harus berupa teks statis. Ini dapat mencakup variabel shell, nama file, dan direktori. Anda juga dapat mengarahkan gema untuk membuat file teks dan file log. Ikuti panduan sederhana ini untuk mencari tahu caranya.

Echo Mengulangi Apa yang Anda Katakan Untuk Mengulangi

Zeus senang meninggalkan Gunung Olympus untuk bergaul dengan bidadari cantik. Dalam satu perjalanan, dia memberi tahu seorang peri gunung bernama Echo untuk menghalangi istrinya, Hera, jika dia mengikutinya. Hera memang datang mencari Zeus, dan Echo melakukan semua yang dia bisa untuk membuat Hera tetap mengobrol. Akhirnya, Hera kehilangan kesabarannya dan mengutuk Echo yang malang sehingga dia hanya mengulangi kata-kata terakhir yang diucapkan orang lain. Apa yang Hera lakukan pada Zeus ketika dia menyusulnya adalah dugaan siapa pun.

Dan itu, cukup banyak, echobanyak dalam hidup. Ini mengulangi apa yang diperintahkan untuk diulang. Itu fungsi yang sederhana, tapi penting. Tanpa echo, kita tidak akan bisa mendapatkan keluaran yang terlihat dari skrip shell, misalnya.

Meskipun tidak dibebani dengan banyak hal, ada kemungkinan bagus yang echomemiliki beberapa kemampuan yang tidak Anda ketahui atau Anda lupakan.

gema? gema!

Kebanyakan sistem Linux menyediakan dua versi echo. Bash shell memiliki bawaannya sendiri echo, dan ada versi biner yang dapat dieksekusi echojuga.

Kita bisa melihat dua versi berbeda dengan menggunakan perintah berikut:

ketik echo
whereis echo

The typeperintah memberitahu kita apakah perintah kita lulus untuk itu sebagai argumen adalah builtin shell, sebuah executable biner, alias, atau fungsi. Ini melaporkan kepada kami bahwa itu echoadalah shell bawaan.

Begitu menemukan jawaban, typeberhenti mencari kecocokan lebih lanjut. Jadi itu tidak memberi tahu kami jika ada perintah lain dengan nama yang sama yang ada di sistem. Tapi itu memberitahu kita mana yang ditemukan pertama kali. Dan itulah yang akan digunakan secara default saat kami mengeluarkan perintah itu.

The whereisperintah penampilan untuk biner, kode sumber, dan halaman manual untuk perintah kami lulus untuk itu sebagai parameter baris perintah. Itu tidak mencari bawaan shell karena mereka tidak memiliki biner yang dapat dieksekusi terpisah. Mereka adalah bagian integral dari Bash yang dapat dieksekusi.

Laporan whereisperintah yang echomerupakan eksekusi biner yang terletak di /bindirektori.

Untuk menggunakan versi itu, echoAnda perlu memanggilnya secara eksplisit dengan menyediakan jalur ke file yang dapat dieksekusi di baris perintah:

/ bin / echo --version

Shell builtin tidak tahu apa --versionargumen baris perintah itu, itu hanya mengulanginya di jendela terminal:

echo --version

Semua contoh yang ditampilkan di sini menggunakan versi default echo, di shell Bash.

Menulis Teks ke Terminal

Untuk menulis string teks sederhana ke jendela terminal, ketik echodan string yang Anda inginkan untuk ditampilkan:

echo Nama saya Dave.

Teks itu diulangi untuk kita. Tetapi saat Anda bereksperimen, Anda akan segera menemukan bahwa segala sesuatunya bisa menjadi sedikit lebih rumit. Lihat contoh ini:

echo Nama saya Dave dan saya seorang geek.

Jendela terminal menampilkan   > tanda dan duduk di sana, menunggu. Ctrl + C akan mengembalikan Anda ke command prompt. Apa yang terjadi disana?

Kutipan tunggal atau apostrof dalam kata "Saya" membingungkan echo. Itu menafsirkan kutipan tunggal itu sebagai awal dari bagian teks yang dikutip. Karena tidak mendeteksi penutupan kutipan tunggal,  echomenunggu masukan lebih banyak. Diharapkan masukan lebih lanjut untuk menyertakan kutipan tunggal yang hilang yang ditunggu-tunggu.

Untuk menyertakan satu kutipan dalam sebuah string, solusi paling sederhana adalah dengan membungkus seluruh string dalam tanda kutip ganda:

echo "Nama saya Dave dan saya seorang geek."

Membungkus teks Anda dengan tanda kutip ganda adalah nasihat umum yang baik. Dalam skrip, ini dengan rapi membatasi parameter yang Anda teruskan echo. Hal ini membuat membaca — dan men-debug — skrip jauh lebih mudah.

Bagaimana jika Anda ingin menyertakan karakter kutip ganda dalam string teks Anda? Caranya mudah, cukup beri garis miring terbalik \di depan tanda kutip ganda (tanpa spasi di antara keduanya).

echo "Nama saya Dave dan saya seorang \" geek. \ ""

Ini membungkus kata "geek" dalam tanda kutip ganda untuk kita. Kita akan segera melihat lebih banyak dari karakter dengan garis miring terbalik ini .

Menggunakan Variabel Dengan echo

Sejauh ini, kami telah menulis teks yang telah ditentukan sebelumnya ke jendela terminal. Kita dapat menggunakan variabel with echountuk menghasilkan keluaran yang lebih dinamis dan memiliki nilai yang dimasukkan ke dalamnya untuk kita oleh shell. Kita dapat mendefinisikan variabel sederhana dengan perintah ini:

my_name = "Dave"

Variabel yang dipanggil my_nametelah dibuat. Nilai teks "Dave" telah ditetapkan. Kita dapat menggunakan nama variabel dalam string yang kita berikan echo , dan nilai variabel akan ditulis ke jendela terminal. Anda harus meletakkan tanda dolar $di depan nama variabel untuk memberi echotahu bahwa itu adalah variabel.

Ada peringatan. Jika Anda telah membungkus string Anda dalam tanda kutip tunggal echo akan memperlakukan semuanya secara harfiah. Untuk memiliki variabel nilai yang ditampilkan, dan bukan nama variabel, gunakan tanda kutip ganda.

echo 'Nama saya $ my_name'
echo "Nama saya $ my_name"

Agak tepat, itu layak diulang:

  • Menggunakan tanda kutip tunggal menghasilkan teks yang ditulis ke jendela terminal secara literal .
  • Menggunakan  tanda kutip ganda menghasilkan variabel yang diinterpretasikan — juga disebut ekspansi variabel — dan nilainya ditulis ke jendela terminal.

TERKAIT: Cara Bekerja dengan Variabel di Bash

Menggunakan Perintah Dengan echo

Kita dapat menggunakan perintah dengan echodan memasukkan outputnya ke dalam string yang ditulis ke jendela terminal. Kita harus menggunakan tanda dolar $seolah-olah perintah itu adalah variabel, dan membungkus seluruh perintah dalam tanda kurung.

Kami akan menggunakan perintah tanggal. Salah satu tipnya adalah menggunakan perintah itu sendiri sebelum Anda mulai menggunakannya dengan echo. Dengan begitu, jika ada yang salah dengan sintaks perintah Anda, Anda mengidentifikasinya dan memperbaikinya sebelum Anda memasukkannya ke dalam echoperintah. Kemudian, jika echoperintah tidak melakukan apa yang Anda harapkan, Anda akan tahu masalahnya pasti ada pada echosintaks karena Anda sudah membuktikan sintaks perintah.

Jadi, coba ini di jendela terminal:

tanggal +% D

Dan, puas bahwa kami mendapatkan apa yang kami harapkan dari perintah tanggal, kami akan mengintegrasikannya ke dalam sebuah echoperintah:

echo "Tanggal hari ini adalah: $ (tanggal +% D)"

Perhatikan bahwa perintah berada di dalam tanda kurung dan tanda dolar $ berada tepat sebelum tanda kurung pertama.

Memformat Teks Dengan echo

Opsi -e(aktifkan pelarian garis miring terbalik) memungkinkan kita menggunakan beberapa karakter dengan garis miring terbalik untuk mengubah tata letak teks. Ini adalah karakter dengan escape backslash yang dapat kita gunakan:

  • \ a : Alert (secara historis dikenal sebagai BEL). Ini menghasilkan suara peringatan default.
  • \ b : Menulis karakter spasi mundur.
  • \ c : Mengabaikan keluaran lebih lanjut.
  • \ e : Menulis karakter pelarian.
  • \ f : Menulis karakter umpan formulir.
  • \ n : Menulis baris baru.
  • \ r : Menulis kembali kereta.
  • \ t : Menulis tab horizontal.
  • \ v : Menulis tab vertikal.
  • \\ : Menulis karakter garis miring terbalik.

Mari kita gunakan beberapa dari mereka dan lihat apa yang mereka lakukan.

echo -e "Ini adalah baris teks yang panjang \ ndibagi menjadi tiga baris \ ndengan \ ttab \ ton \ t \ ttiga \ tline"

Teks dibagi menjadi baris baru di mana kita telah menggunakan \nkarakter dan tab disisipkan di tempat kita menggunakan \tkarakter.

echo -e "Ini \ vare \ vvertical \ vtabs"

Seperti \nkarakter baris baru, tab vertikal \vmemindahkan teks ke baris di bawahnya. Namun, tidak seperti  \n karakter baris baru, \vtab vertikal tidak memulai baris baru di kolom nol. Ini menggunakan kolom saat ini.

The \bkarakter backspace memindahkan kursor kembali satu karakter. Jika ada lebih banyak teks yang akan ditulis ke terminal, teks itu akan menimpa karakter sebelumnya.

echo -e "123 \ b4"

"3" ditimpa oleh "4".

Karakter \rcarriage return menyebabkan  echountuk kembali ke awal baris saat ini dan untuk menulis teks lebih lanjut dari kolom nol.

echo -e "123 \ r456"

Karakter "123" diganti dengan karakter "456".

The \akarakter peringatan akan menghasilkan “bip.” Terdengar Ini menggunakan suara peringatan default untuk tema Anda saat ini.

echo -e "Tidurlah \ a"

Opsi -n(tidak ada baris baru) bukanlah urutan pelolosan garis miring terbalik, tetapi ini memengaruhi kosmetik tata letak teks, jadi kita akan membahasnya di sini. Ini mencegah echodari menambahkan baris baru ke akhir teks. Prompt perintah muncul langsung setelah teks yang ditulis ke jendela terminal.

echo -n "tidak ada baris baru terakhir"

Menggunakan echo Dengan File dan Direktori

Anda dapat menggunakan echosebagai versi orang miskin ls. Pilihan Anda sedikit dan jauh antara saat Anda menggunakan echoseperti ini. Jika Anda membutuhkan segala jenis kesetiaan atau kontrol yang baik, Anda lebih baik menggunakan lsdan banyak pilihannya.

Perintah ini mencantumkan semua file dan direktori di direktori saat ini:

echo *

Perintah ini mencantumkan semua file dan direktori di direktori saat ini yang namanya dimulai dengan "D":

echo D *

Perintah ini mencantumkan semua file ".desktop" di direktori saat ini:

echo * .desktop

Ya. Ini tidak mempermainkan echokekuatan. Gunakan ls.

Menulis ke File dengan echo

Kita dapat mengarahkan output dari echodan membuat file teks atau menulis ke file teks yang ada.

Jika kita menggunakan >operator redirection, file dibuat jika tidak ada. Jika file memang ada, keluaran dari echoditambahkan di awal file, menimpa konten sebelumnya.

Jika kita menggunakan >>operator redirection, file dibuat jika tidak ada. Output dari echoditambahkan ke akhir file dan tidak menimpa konten file yang ada.

echo "Membuat file baru." > sample.txt
echo "Menambahkan ke file." >> sample.txt
cat sample.txt

File baru dibuat dengan perintah pertama, dan teks dimasukkan ke dalamnya. Perintah kedua menambahkan sebaris teks ke bagian bawah file. The catperintah menampilkan isi dari file ke jendela terminal.

Dan tentu saja, kami dapat menyertakan variabel untuk menambahkan beberapa informasi berguna ke file kami. Jika file tersebut adalah file log, kami mungkin ingin menambahkan stempel waktu ke dalamnya. Kita bisa melakukannya dengan perintah selanjutnya.

Perhatikan tanda kutip tunggal di sekitar parameter untuk dateperintah tersebut. Mereka mencegah ruang antara parameter diinterpretasikan sebagai akhir dari daftar parameter. Mereka memastikan parameter diteruskan dengan  date benar.

echo "Logfile dimulai: $ (date + '% D% T')"> logfile.txt
kucing logfile.txt

Logfile kami dibuat untuk kami dan catmenunjukkan kepada kami bahwa cap tanggal dan cap waktu ditambahkan ke dalamnya.

TERKAIT: Apa itu stdin, stdout, dan stderr di Linux?

Itu Repertoar Gema

Perintah sederhana, tetapi sangat diperlukan. Jika tidak ada, kita harus menemukannya.

Kejahatan Zeus memang bermanfaat.