GNU/Linux >> Belajar Linux >  >> Linux

Perintah Bash Berguna yang Mungkin Tidak Anda Ketahui

Bash adalah bahasa yang cukup kuat untuk diprogram, dan juga cukup mudah untuk memulai.

Lagi pula, itu hampir secara universal shell yang akan Anda lihat ketika Anda membuka terminal Anda. Itu membuatnya sangat berguna untuk membiasakan diri.

Ada beberapa perintah kuat di Bash yang mungkin tidak Anda sadari, meskipun Anda cukup berpengalaman menggunakan bahasa tersebut. Semua perintah ini dapat melayani tujuan yang cukup berguna, dan dapat membuat skrip shell yang Anda tulis lebih bersih, lebih mudah dipelihara, dan benar-benar lebih kuat daripada sebelumnya.

Baca:Meminta masukan dari Pengguna

Perintah read memungkinkan Anda mengambil input dari pengguna dan menyimpannya di dalam variabel.

#!/usr/bin/env bash
echo "What is your name?"
read name
echo "Your name is ${name}!"

Ini akan menunggu masukan dari Anda, pengguna, dan kemudian menetapkan nilai untuk name variabel ke string yang Anda masukkan.

Misalnya, jika Anda menetapkan nama Anda sebagai Linux Handbook saat menjalankan skrip di atas, itu akan menampilkan Your name is Linux Handbook! .

Anda juga dapat membuat contoh di atas lebih ringkas dengan menentukan -p pilihan untuk read perintah, yang akan mencetak string yang ditentukan setelah -p , lalu minta masukan dari pengguna:

#!/usr/bin/env bash
read -p "What is your name? " name
echo "Your name is ${name}!"

Anda juga akan melihat bahwa saya menambahkan spasi setelah What is your name? . Jika kami tidak menambahkannya, itu akan benar-benar mencetak What is your name? tanpa spasi, yang akan membuatnya terlihat sedikit lebih aneh saat pengguna memasukkan input mereka:

Mapfile:Menetapkan variabel nilai baris file

Anda dapat menggunakan mapfile perintah untuk membaca konten file, dan kemudian menetapkan output itu ke array Bash, dengan setiap item array dibuat setiap kali baris baru ditemukan dalam file.

Sebagai contoh, mari kita buat sebuah file bernama file.txt yang berisi teks berikut:

Line 1
Line 2
Line 3
Line 4
Line 5

Anda dapat mengonversi file ini menjadi array Bash dengan menjalankan perintah berikut, yang menetapkan konten file ke file_var variabel:

#!/usr/bin/env bash
mapfile file_var < file.txt

for i in "${file_var[@]}"; do
	echo "${i}"
done

Anda akan melihat bahwa di atas menghasilkan beberapa keluaran dengan spasi aneh juga yang tidak selaras dengan apa yang ada di dalam file, yang dapat diselesaikan dengan menambahkan -t pilihan ke mapfile perintah:

#!/usr/bin/env bash
mapfile -t file_var < file.txt

for i in "${file_var[@]}"; do
	echo "${i}"
done

Terakhir, Anda mungkin memperhatikan bahwa berikut ini tidak berfungsi:

#!/usr/bin/env bash
cat file.txt | mapfile -t file_var

Ini karena mapfile perintah di sisi kanan pipa dijalankan dalam subkulit (atau dengan kata lain, contoh baru Bash), yang tidak dapat memengaruhi shell Anda saat ini.

Sumber:Masukkan variabel dari file ke lingkungan shell Anda

Katakanlah Anda memiliki file imajiner berikut, config.sh , dengan isi sebagai berikut:

username=linuxhandbook
domain=linuxhandbook.com

Bagaimana jika Anda ingin mengambil konten file itu dan memasukkannya ke dalam lingkungan shell Anda saat ini?

Ini dapat dilakukan cukup sederhana hanya dengan menggunakan perintah sumber:

source config.sh

Anda kemudian dapat memeriksa untuk melihat bahwa variabel telah ditetapkan seperti yang diharapkan:

Di bawah tenda, source perintah sebenarnya menjalankan file yang ditentukan di lingkungan shell Anda saat ini, jadi mengetikkan perintah apa pun di file itu sebenarnya akan menyebabkannya dieksekusi saat menjalankan source .

Sebagai contoh, mari kita masukkan yang berikut ini ke dalam config.sh :

name="Linux Handbook"
echo "Hello ${name}!"
echo "Have a good day!"

Jika kita kemudian menjalankan soure config.sh , Anda akan melihat bahwa dua echo perintah dijalankan, serta name variabel yang ditugaskan:

Anda juga dapat menggunakan . sebagai pengganti source , yang bertindak dengan cara yang sama seperti source akan.

Menutup

Dan begitu saja, Anda semakin jauh dalam melakukan tugas yang lebih kuat dan berguna, sambil tetap berada di dalam Bash.

Apakah ada perintah lain yang sering Anda gunakan di Bash? Jangan ragu untuk meninggalkan salah satu dari mereka di komentar di bawah.


Linux
  1. 30 hal yang tidak Anda ketahui tentang kernel Linux

  2. Apa yang mungkin tidak Anda ketahui tentang sudo

  3. Bagaimana Anda menormalkan jalur file di Bash?

  1. 4 Cara Berguna untuk Mengetahui Nama Perangkat USB yang Dicolokkan di Linux

  2. Apa yang perlu diketahui sysadmin tentang menggunakan Bash

  3. Mengapa Substitusi Proses Bash Tidak Bekerja Dengan Beberapa Perintah?

  1. Semua yang ingin Anda ketahui tentang Zorin OS 12

  2. Bagaimana saya tahu nama file skrip dalam skrip Bash?

  3. Jalankan file teks sebagai perintah di Bash