Pengaturcaraan BASH

Cara Menggunakan $ IFS di Bash?

Cara Menggunakan $ IFS di Bash?
Dalam skrip, kita mesti memecahkan data rentetan dengan pelbagai alasan. Split adalah ciri bersepadu dalam banyak bahasa komputer yang membahagikan setiap rentetan data menjadi pelbagai bahagian. Namun, bash tidak mempunyai ciri bawaan untuk membelah rentetan. Untuk memecahkan sebarang nilai rentetan, terdapat banyak pembatas tunggal dan gabungan yang akan digunakan. Pemboleh ubah IFS (Internal Field Separator) digunakan untuk menentukan pembatas tertentu untuk pembahagian tali. Dalam panduan ini, anda akan belajar bagaimana menggunakan pelbagai kaedah untuk menggambarkan proses pemecahan nilai rentetan dalam bash menggunakan $ IFS.

Prasyarat

Pastikan sistem berasaskan Linux dipasang dan dikonfigurasi. Kami akan mengusahakan Ubuntu 20.04 sistem Linux. Log masuk dari pengguna akaun Ubuntu anda untuk mula mengerjakan IFS. Lebih baik jika anda log masuk dari akaun pengguna root anda. Setelah log masuk, lancarkan terminal baris perintah di sistem anda dari kawasan Aktiviti.

Contoh 01: IFS Pisahkan Rentetan Menggunakan Ruang sebagai Nilai

Sebagai contoh pertama kami, kami akan memahami konsep membelah rentetan dalam bash semasa menggunakan ruang sebagai nilai pembatas menggunakan pemboleh ubah IFS. Pertama, kita harus membuat fail bash dalam sistem kita. Kita boleh membuat fail baru dalam sistem Linux kita menggunakan perintah 'sentuh'. Seperti yang ditunjukkan di bawah, kami telah membuat bash file 'file1.sh 'menggunakan arahan' sentuh ':

$ sentuh fail1.sh

Buka direktori Utama sistem Linux anda menggunakan ikon folder yang dipaparkan di sudut kiri Ubuntu 20 anda.04 desktop. Anda akan menemui fail bash yang baru anda buat “file1.sh ”di dalamnya. Buka fail “file1.sh ”dan taipkan skrip di bawah. Pertama, kami telah menentukan rentetan bernama "str" ​​dengan beberapa nilai rentetan di dalamnya. Kemudian, kami mendefinisikan pembatas pembatas IFS sebagai pemboleh ubah yang mempunyai ruang sebagai nilainya. Setelah itu, kami menggunakan pernyataan baca untuk menyimpan dan membaca data perpecahan menjadi array "strarr" menggunakan bendera "-a". Pernyataan 'echo' digunakan untuk mencetak garis rentetan bersamaan dengan jumlah kata array dengan menggunakan "$ # strarr [*]". Gelung "untuk" digunakan untuk mencetak nilai array dalam bentuk split menggunakan pemboleh ubah "var". Tanda miring terbalik "\ n" telah digunakan dalam garis cetak bersama dengan pemboleh ubah "var" untuk memberikan pemecahan satu baris setelah setiap nilai array. Simpan skrip menggunakan kekunci "Ctrl + S" dan tutup fail untuk melangkah lebih jauh.

Kembali ke bahagian terminal. Sekarang, kami akan memeriksa output kod di atas. Untuk ini, kita akan menggunakan perintah 'bash' bersama dengan nama file "file1.sh ”untuk melaksanakannya seperti yang ditunjukkan di bawah. Pertama, ia menunjukkan garis yang disebutkan dalam pernyataan "gema" bersamaan dengan jumlah kata-kata array. Setelah itu, ia memaparkan semua nilai array menggunakan gelung “untuk” yang dipisahkan oleh IFS.

fail $ bash1.sh

Contoh 02: IFS Pisahkan Rentetan menggunakan Karakter sebagai Nilai

Dalam contoh yang disebutkan di atas, anda telah melihat cara membahagi pemboleh ubah rentetan menjadi beberapa bahagian sambil menggunakan ruang sebagai pembatas IFS. Sekarang, kita akan menggunakan watak untuk memisahkan rentetan menggunakan pembatas IFS. Buka terminal arahan anda dan buat bash file baru “file2.sh ”di direktori utama sistem Linux anda menggunakan perintah“ sentuh ”seperti berikut:

$ sentuh fail2.sh

Buka direktori utama sistem Linux anda. Anda akan menemui fail yang baru anda buat di dalamnya. Buka fail yang baru anda buat dan tuliskan kod bash di bawah ini. Pada baris 3, kami telah memulai pernyataan "gema" untuk mencetak garis. Baris seterusnya membaca input yang diberikan oleh pengguna di terminal menggunakan kata kunci "baca". Seterusnya, kami mendefinisikan pembatas "IFS" dan menetapkan koma "," sebagai nilai wataknya. Pernyataan "baca" lain telah ditentukan untuk membaca dan menyimpan nilai pemisah koma dari rentetan yang dimasukkan oleh pengguna ke array "strarr". Akhirnya, kami telah memulai tiga pernyataan gema untuk mencetak nilai perpecahan yang dipisahkan koma sebagai pemboleh ubah seperti yang ditunjukkan dalam gambar. Simpan dan tutup fail ini.

Sekarang, kita harus melaksanakan fail yang disimpan ini. Jalankan perintah bash yang ditunjukkan di bawah ini diikuti dengan nama fail di terminal untuk melakukannya. Anda harus menambahkan beberapa nilai string yang mesti mengandungi koma "," dalam nilai, dan tekan butang Enter. Sekarang data anda telah disimpan ke dalam array "strarr". Tiga baris terakhir menunjukkan keluaran pernyataan “echo”. Anda dapat melihat, setiap teks sebelum dan selepas koma telah digunakan sebagai nilai yang berasingan.

$ bash fail2.sh

Contoh 03: Rentetan Berpisah IFS

Kami telah melakukan kedua-dua contoh sebelumnya dalam fail bash. Kami sekarang akan mempunyai ilustrasi penggunaan "IFS" tanpa membuat bash file. Buka shell arahan anda untuk melakukannya. Pertama, kita perlu membuat rentetan "var" dengan nilai rentetan di dalamnya. Rentetan ini mengandungi koma selepas setiap perkataan.

$ var = ”Hai, saya, berumur 25 tahun."

Seterusnya, mulakan pemboleh ubah 'IFS' dengan koma watak sebagai nilai pembatas.

$ IFS =,

Setelah itu, kami menggunakan gelung "untuk" untuk mencari setiap kata dari pemboleh ubah "var" yang dipisahkan oleh koma pembatas IFS dan mencetaknya menggunakan pernyataan "echo".

$ untuk i dalam $ var
> lakukan
> gema [$ i]
> Selesai

Anda akan mempunyai output di bawah. Ia akan menunjukkan setiap kata dari variabel rentetan "var" pada baris baru kerana pembatas koma "," digunakan sebagai watak pemisah.

Kesimpulan:

Dalam panduan ini, anda telah mempelajari pelbagai kaedah untuk memisahkan nilai input dalam bash, e.g., dengan ruang atau dengan watak. Kami berharap ilustrasi yang dinyatakan dalam panduan tutorial ini dapat membantu anda memecahkan setiap rentetan menggunakan pembatas IFS.

Cara Menggunakan Xdotool untuk Merangsang Klik dan Penekanan Tetikus di Linux
Xdotool adalah alat baris arahan sumber terbuka dan bebas untuk mensimulasikan klik dan tekan kekunci tetikus. Artikel ini akan merangkumi panduan rin...
5 Produk Tetikus Komputer Ergonomik Teratas untuk Linux
Adakah penggunaan komputer yang berpanjangan menyebabkan rasa sakit di pergelangan tangan atau jari anda? Adakah anda mengalami sendi kaku dan selalu ...
Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...