Sebagai pemula ketika Anda mulai bekerja dengan skrip Bash, perintah pertama yang mungkin akan Anda pelajari dan gunakan adalah echo
memerintah. Anda dapat memikirkan perintah bash echo sesuatu yang mirip dengan print
perintah dalam bahasa pemrograman lain. echo
perintah adalah bash built-in dan tujuannya adalah untuk mencetak output ke stdout (yaitu Terminal).
Pada artikel ini, saya akan menunjukkan kepada Anda apa itu perintah bash echo dan bagaimana menggunakannya di skrip shell Anda. Sebelum kita masuk ke topik, mari kita lihat perbedaan antara bulit-in Bash dan perintah eksternal.
Bash built-in echo vs perintah echo eksternal
Di Linux dan sistem mirip Unix lainnya, beberapa perintah disediakan sebagai perintah internal dan eksternal. Misalnya, /bin/echo
adalah perintah eksternal yang memiliki nama yang sama dengan echo
bash bawaan.
Ketika kita memanggil perintah yang ada baik sebagai builtin maupun sebagai perintah eksternal, biasanya built-in dijalankan secara default. Karena, urutan prioritas untuk nama perintah adalah alias
, lalu function
, lalu builtin
, dan kemudian perintah eksternal di direktori yang terdaftar di $PATH
dalam urutan.
Jika Anda ingin memaksakan perintah eksternal yang tersedia sebagai perintah internal dan eksternal, cukup gunakan jalur lengkapnya.
Untuk memperjelasnya, perintah berikut memanggil bash built-in:
$ echo <some-text>
Dan berikut ini memanggil echo
eksternal perintah:
$ /bin/echo <some-text>
Untuk mengetahui apakah suatu perintah merupakan perintah bawaan atau perintah eksternal, kita dapat menggunakan ketik perintah:
$ type echo echo is a shell builtin
Untuk menampilkan semua lokasi yang berisi executable yang ditentukan, gunakan -a
bendera:
$ type -a echo echo is a shell builtin echo is /usr/bin/echo
Untuk lebih jelasnya tentang type
penggunaan perintah, lihat tautan berikut:
- Tutorial Perintah Mengetik Dengan Contoh Untuk Pemula
Melalui panduan ini, kita akan membahas bash built-in echo
perintah, bukan yang eksternal.
Tampilkan bantuan perintah bash echo
Hampir semua perintah Linux di luar sana memiliki halaman manual atau bagian bantuan untuk memahami cara menggunakan perintah itu. Panduan bantuan echo
perintah disertakan dalam halaman manual Bash
Untuk mengakses halaman manual untuk bash
perintah, jalankan:
$ man bash
Sekarang, ketik /echo
dan tekan n
sampai Anda melihat bagian bantuan echo
perintah.
Atau, Anda dapat menggunakan perintah satu baris berikut untuk menampilkan bagian bantuan echo
perintah:
$ man bash | less --pattern='^ *echo +\['
Struktur perintah echo
echo
perintah menerima tiga argumen opsional dan teks yang akan dicetak ke stdout.
echo [-neE] [arg ...] -n → Do not append a new line -e → enable interpretation of backslash escapes -E → disable the interpretation of backslash escapes (default)
Mari kita lewati tiga argumen opsional untuk saat ini dan lihat cara menggunakan echo
untuk mencetak teks ke stdout (Terminal).
Anda dapat menjalankan potongan kode berikut secara langsung di terminal atau membuat file skrip dan kemudian menjalankannya. Saya akan menjalankannya langsung di Terminal:
$ echo "Hello World" Hello World
Perhatikan contoh di atas. Ini adalah hello world
tradisional program yang kami jalankan setiap kali kami mempelajari bahasa baru dan menjalankannya sebagai kode pertama. echo
perintah di sini menerima "hello world"
teks sebagai argumen dan mencetaknya ke terminal (Stdout).
Cara menekan karakter baris baru
Perilaku default bash echo
perintahnya adalah, secara otomatis akan menambahkan baris baru (\n
). Jalankan hello world
yang sama program lagi dan perhatikan terminal prompt akan ditampilkan di baris baru.
$ echo "Hello world" Hello world
Sekarang jika Anda ingin menekan perilaku ini, Anda dapat menggunakan "-n"
flag yang akan menekan baris baru dan terminal prompt akan dicetak pada baris yang sama seperti yang ditunjukkan di bawah ini.
$ echo -n "Hello world" Hello world
Apa yang terjadi jika tidak ada argumen yang diteruskan
Ketika tidak ada argumen yang diteruskan ke perintah echo, perintah tidak akan gagal tetapi akan mengembalikan baris baru yang kosong. Luncurkan terminal Anda dan jalankan "echo"
dan Anda akan melihatnya hanya mencetak baris kosong dan keluar.
$ echo
$ echo $?
0
Anda dapat mengganti perilaku ini dengan menambahkan "-n"
flag yang tidak akan mencetak baris baru meskipun tidak ada argumen yang diteruskan.
$ echo -n
Di mana ini akan berguna? Anda mungkin bertanya-tanya. Bila Anda ingin beberapa baris kosong di antara output Anda, Anda dapat menggunakan echo
tanpa argumen.
Bekerja dengan variabel dan perintah
echo
perintah akan menafsirkan variabel yang ditentukan pengguna atau shell yang diteruskan sebagai argumen dan mencetak nilainya. Lihatlah contoh-contoh di bawah ini.
Pertama, variabel env "SHELL"
diteruskan ke echo
perintah dan mencetak nilai variabel.
# Environmental Variable: $ echo " I am currently using ${SHELL}" I am currently using /bin/bash
Kedua, variabel yang ditentukan pengguna "NAME"
diteruskan ke echo
perintah dan nilainya dicetak ke terminal.
# User Defined Variable: $ NAME="PoP_OS" $ echo "I am using ${NAME}" I am using PoP_OS
Anda juga dapat menjalankan perintah di dalam argumen. Lihatlah contoh di bawah ini di mana "uname -r"
perintah diteruskan sebagai argumen dan perintah diinterpretasikan dan output dicetak.
$ echo "KERNEL_VERSION=$(uname -r)" KERNEL_VERSION=5.11.0-7620-generic
Dampak penggunaan tanda kutip tunggal dan ganda
Dalam semua contoh sebelumnya, Anda mungkin telah memperhatikan bahwa saya telah menggunakan tanda kutip ganda di sekitar argumen. Jadi apa yang terjadi ketika argumen tidak diapit dengan tanda kutip? Perintah Echo tidak akan gagal dan Anda akan mendapatkan output yang sama.
Lihat contoh berikut. Saya menjalankan perintah yang sama yang saya gunakan di bagian sebelumnya tetapi tanpa tanda kutip dan mencetak output tanpa kesalahan.
$ echo I am using ${NAME} I am using Pop_OS
Sebagai praktik yang baik, selalu sertakan argumen dengan tanda kutip.
Jika argumennya adalah teks biasa, Anda dapat menggunakan tanda kutip tunggal atau ganda. Tetapi jika Anda ingin menjalankan perintah apa pun atau memperluas variabel apa pun dalam argumen, Anda harus menggunakan tanda kutip ganda, bukan tanda kutip tunggal.
Kutipan tunggal akan mencegah perintah apa pun untuk dijalankan atau variabel diperluas. Itu hanya akan memperlakukan seluruh argumen sebagai teks biasa.
Lihatlah contoh di bawah ini. Ketika saya menyertakan argumen dengan tanda kutip tunggal, variabel "NAME"
tidak ditafsirkan dan diperlakukan sebagai teks.
# SINGLE QUOTES $ echo 'I am using ${NAME}' I am using ${NAME} # DOUBLE QUOTES $ echo "I am using Linux ${NAME}" I am using Linux PoP_OS
Pengalihan dan pemipaan keluaran
Seperti yang dinyatakan sebelumnya, echo
perintah mencetak output ke output standar (terminal) secara default. Saat Anda menulis skrip shell, Anda mungkin berada dalam situasi untuk menyimpan output dari echo
perintah ke file. Anda dapat melakukannya menggunakan pengalihan bash operator.
$ echo "Welcome to OSTechNix" > /tmp/op.log
$ cat /tmp/op.log Welcome to OSTechNix
Bacaan yang disarankan:
- Pengalihan Bash Dijelaskan Dengan Contoh
- Tutorial Bash Heredoc Untuk Pemula
Anda juga dapat mengirim output dari echo
perintah ke pipe
untuk diproses lebih lanjut.
$ echo "I am using ${NAME}" I am using PoP_OS
$ echo "I am using ${NAME}" | grep -i -o POP PoP
String multibaris
Argumen Anda terkadang muncul lebih dari satu baris. Anda dapat menyertakan argumen multiline dengan tanda kutip ganda untuk mencetak output dengan mempertimbangkan baris, tab, dan spasi baru.
$ echo "This is Line 1
This is Line 2
This is Line 3"
Dalam beberapa kasus, meskipun argumen Anda diteruskan sebagai string multibaris, Anda mungkin ingin mencetaknya sebagai satu baris. Dalam kasus seperti itu, gunakan "\"
simbol di akhir setiap baris, sehingga baris berikutnya akan melanjutkan dengan baris sebelumnya.
$ echo "I am running \ the echo command \ again"
Contoh keluaran:
I am running the echo command again
Ini tidak secara eksklusif khusus untuk bash echo
memerintah. Anda dapat menggunakan pendekatan ini untuk menelurkan perintah yang sangat besar ke multiline untuk keterbacaan yang lebih baik.
Backslash lolos dari interpretasi
echo
perintah menerima banyak karakter yang lolos sebagai argumen. Agar karakter khusus ini dikenali oleh perintah echo, "-e"
bendera harus dilewati. Anda bisa mendapatkan daftar karakter khusus yang didukung dari echo
halaman manual perintah.
Anda tidak akan menggunakan semua karakter khusus dalam kehidupan sehari-hari Anda. Anda sebagian besar akan menggunakan karakter baris baru, tab, dan karakter garis miring terbalik.
Karakter baris baru - \n
Baris baru akan ditambahkan saat Anda melewati \n
ke echo
memerintah. Anda juga dapat melewati beberapa \n yang akan menambahkan lebih banyak baris.
$ echo -e "This is the first line\nThis is the second Line\nThis is the third line"
Contoh keluaran:
This is the first line This is the second Line This is the third line
Tab horizontal - \t
Ketika \t
digunakan, itu akan menambah spasi tab. Anda juga dapat menggabungkan beberapa karakter pelarian seperti yang saya lakukan di bawah ini.
$ echo -e "Enter the U_NAME\t:\n" Enter the U_NAME :
Tab vertikal - \v
Untuk membuat tab secara vertikal, gunakan \v
.
$ echo -e "Enter the username\vEnter the password" Enter the username Enter the password
Menekan keluaran - \c
Ketika \c
digunakan, apa pun yang muncul setelah \c
akan ditekan.
$ echo -e "I am using \cCosmic Desktop" I am using
Kereta pulang - \r
Ketika \r
digunakan, kursor diatur ulang ke karakter pertama dan apa pun yang muncul setelah \r
dicetak menggantikan karakter yang ada.
$ echo -e "I use Arch, \rBtw" Btwse Arch,
Nonaktifkan backslash lolos interpretasi
Perilaku default echo
perintah itu akan memperlakukan karakter khusus sebagai teks biasa kecuali -e
bendera dilewatkan. Perilaku yang sama dapat dicapai dengan menggunakan -E
bendera.
Saya akan menunjukkan sebuah contoh.
Biarkan saya menjalankan echo
perintah tanpa bendera:
$ echo "Welcome to OSTechNix \nblog" Welcome to OSTechNix \nblog
Selanjutnya, saya menjalankan perintah yang sama dengan -E
Bendera:
$ echo -E "Welcome to OSTechNix \nblog" Welcome to OSTechNix \nblog
Seperti yang Anda lihat, hasilnya serupa ketika saya menjalankan echo
perintah dengan -E
bendera dan tanpa bendera apapun. Dalam kedua kasus, echo
perintah memperlakukan /n
karakter khusus sebagai string biasa.
Sekarang biarkan saya menjalankan perintah yang sama lagi, tapi kali ini dengan -e
bendera.
$ echo -e "Welcome to OSTechNix \nblog"
Welcome to OSTechNix
blog
Apakah Anda melihat perbedaannya? Perintah echo tidak memperlakukan /n
karakter sebagai teks biasa dan menampilkan apa pun yang muncul setelah /n
karakter khusus di baris baru.
Oleh karena itu, jika Anda ingin menggunakan karakter khusus seperti \n
, \t
, \v
dll., Anda harus menggunakan -e
bendera. Jika tidak echo
akan memperlakukan semuanya sebagai string biasa.
Izinkan saya untuk menunjukkan contoh lain.
$ echo -e "Hello world\nHello World\nHello World" Hello world Hello World Hello World
Seperti yang Anda lihat pada output di atas, echo
perintah menampilkan "Hello World"
string tiga kali, satu per satu (yaitu di baris baru).
Bagaimana jika Anda hanya ingin melarikan diri dari karakter khusus tertentu? Di sinilah garis miring terbalik ganda (\\
) datang untuk menyelamatkan.
Misalnya, saya ingin keluar dari /n
third ketiga karakter khusus pada perintah sebelumnya.
Untuk melakukannya, saya akan mengawali karakter khusus ketiga dengan garis miring terbalik ganda(\\
) seperti di bawah ini:
$ echo -e "Hello world\nHello World\\\nHello World" Hello world Hello World\nHello World
Sekarang, echo
perintah memperlakukan \n
third ketiga karakter khusus sebagai string biasa.
Oleh karena itu, ketika Anda memiliki banyak karakter khusus dan Anda hanya ingin menghindari karakter khusus tertentu, Anda perlu menambahkan garis miring terbalik ganda (\\
) di depan karakter khusus itu.
Kesimpulan
Dalam artikel ini, kita telah melihat apa yang echo
perintah dan cara yang berbeda untuk menggunakannya. Ini adalah perintah yang sangat sederhana dan tidak akan ada skrip shell tanpa menggunakan echo
perintah kecuali Anda memutuskan untuk menggunakan printf
yang merupakan alternatif untuk echo
perintah di bash.
Bacaan terkait:
- Bash Scripting – Variabel Dijelaskan Dengan Contoh
- Bash Scripting – Fungsi Dijelaskan Dengan Contoh
- Skrip Bash – Untuk Pengulangan Dijelaskan Dengan Contoh
- Bash Scripting – Sementara Dan Sampai Perulangan Dijelaskan Dengan Contoh