GNU/Linux >> Belajar Linux >  >> Linux

Perintah Bash Echo Dijelaskan Dengan Contoh Di Linux

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

Linux
  1. Perintah shutdown Linux Dijelaskan dengan Contoh

  2. Perintah Traceroute Linux, Dijelaskan dengan Contoh

  3. Perintah JQ di Linux dengan Contoh

  1. Perintah wc Linux dengan Contoh

  2. Perintah Echo di Linux (Dengan Contoh)

  3. echo Contoh Perintah di Linux

  1. Perintah potong Linux Dijelaskan dengan 6 Contoh

  2. 16 Contoh Perintah Echo di Linux

  3. Perintah Gema di Linux dengan Contoh