Cara Bekerja dengan Pembolehubah dalam Bash

Terminal Linux dengan teks hijau pada komputer riba.

Fatmawati Achmad Zaenuri/Shutterstock



Pembolehubah adalah penting jika anda ingin menulis skrip dan memahami perkara yang akan dilakukan oleh kod yang akan anda potong dan tampal daripada web pada komputer Linux anda. Kami akan membantu anda bermula!

Pembolehubah 101

Pembolehubah dinamakan simbol yang mewakili sama ada rentetan atau nilai angka. Apabila anda menggunakannya dalam arahan dan ungkapan, ia dianggap seolah-olah anda telah menaip nilai yang dipegangnya dan bukannya nama pembolehubah.





Untuk mencipta pembolehubah, anda hanya memberikan nama dan nilai untuknya. Nama pembolehubah anda hendaklah bersifat deskriptif dan mengingatkan anda tentang nilai yang dipegangnya. Nama pembolehubah tidak boleh bermula dengan nombor, dan juga tidak boleh mengandungi ruang. Walau bagaimanapun, ia boleh bermula dengan garis bawah. Selain itu, anda boleh menggunakan mana-mana gabungan aksara alfanumerik huruf besar dan huruf kecil.

Contoh

Di sini, kami akan mencipta lima pembolehubah. Formatnya adalah untuk menaip nama, tanda sama |_+_| dan nilai. Ambil perhatian bahawa tiada ruang sebelum atau selepas tanda sama. Memberi pembolehubah nilai sering dirujuk sebagai menugaskan nilai kepada pembolehubah.



Kami akan mencipta empat pembolehubah rentetan dan satu pembolehubah berangka, |_+_|

= this_year: echo $ my_boost

Kepada lihat nilainya dipegang dalam pembolehubah, gunakan |_+_| perintah. Anda mesti mendahului nama pembolehubah dengan tanda dolar |__+_| apabila anda merujuk nilai yang terkandung di dalamnya, seperti yang ditunjukkan di bawah:



' ' $

Mari gunakan semua pembolehubah kami sekaligus:

$

Iklan

Nilai pembolehubah menggantikan nama mereka. Anda juga boleh menukar nilai pembolehubah. Untuk memberikan nilai baharu kepada pembolehubah, |_+_|, anda hanya mengulangi perkara yang anda lakukan apabila anda memberikan nilai pertamanya, seperti:

drink_of_the_Year,

Jika anda menjalankan semula arahan sebelumnya, anda kini mendapat hasil yang berbeza:

my_boost

Jadi, anda boleh menggunakan arahan yang sama yang merujuk pembolehubah yang sama dan mendapatkan hasil yang berbeza jika anda menukar nilai yang dipegang dalam pembolehubah.

Kita akan bercakap tentang memetik pembolehubah kemudian. Buat masa ini, berikut adalah beberapa perkara yang perlu diingat:

  • Pembolehubah dalam petikan tunggal |__+_| dianggap sebagai rentetan literal, dan bukan sebagai pembolehubah.
  • Pembolehubah dalam tanda petikan |_+_| dianggap sebagai pembolehubah.
  • Untuk mendapatkan nilai yang dipegang dalam pembolehubah, anda perlu memberikan tanda dolar |_+_|.
  • Pembolehubah tanpa tanda dolar |_+_| hanya memberikan nama pembolehubah.

Anda juga boleh mencipta pembolehubah yang mengambil nilainya daripada pembolehubah sedia ada atau bilangan pembolehubah. Perintah berikut mentakrifkan pembolehubah baharu yang dipanggil |__+_| dan memberikannya nilai gabungan |__+_| dan |_+_| pembolehubah:

this_year /dev

Cara Menggunakan Pembolehubah dalam Skrip

Skrip akan terputus sepenuhnya tanpa pembolehubah. Pembolehubah menyediakan fleksibiliti yang menjadikan skrip sebagai penyelesaian umum dan bukannya khusus. Untuk menggambarkan perbezaannya, berikut ialah skrip yang mengira fail dalam |_+_| direktori.

Iklan

Taipkan ini ke dalam fail teks, dan kemudian simpan sebagai |__+_| (untuk kiraan fail):

fcnt.sh

Sebelum anda boleh menjalankan skrip, anda perlu menjadikannya boleh laku, seperti yang ditunjukkan di bawah:

/dev

Taip yang berikut untuk menjalankan skrip:

folder_to_count

Ini mencetak bilangan fail dalam |_+_| direktori. Begini cara ia berfungsi:

  • Pembolehubah dipanggil |_+_| ditakrifkan, dan ia ditetapkan untuk memegang rentetan /dev.
  • Pembolehubah lain, dipanggil |_+_|, ditakrifkan. Pembolehubah ini mengambil nilainya daripada penggantian arahan. Ini ialah frasa perintah antara kurungan |__+_|. Perhatikan ada tanda dolar |_+_| sebelum kurungan pertama. Binaan ini |__+_| menilai arahan dalam kurungan, dan kemudian mengembalikan nilai akhir mereka. Dalam contoh ini, nilai itu diberikan kepada |__+_| pembolehubah. Setakat |__+_| pembolehubah berkenaan, ia melepasi nilai untuk dipegang; ia tidak mengambil berat tentang cara nilai itu diperoleh.
  • Perintah yang dinilai dalam penggantian arahan melakukan |__+_| penyenaraian fail pada direktori dalam |_+_| pembolehubah, yang telah ditetapkan kepada /dev. Jadi, skrip melaksanakan perintah ls /dev.
  • Output daripada arahan ini disalurkan ke dalam perintah |_+_|. |_+_| Pilihan (kiraan baris) menyebabkan |__+_| kepada mengira bilangan baris dalam output daripada |__+_| perintah. Memandangkan setiap fail disenaraikan pada baris yang berasingan, ini ialah kiraan fail dan subdirektori dalam direktori /dev. Nilai ini diberikan kepada |_+_| pembolehubah.
  • Baris akhir menggunakan gema untuk mengeluarkan hasilnya.

Tetapi ini hanya berfungsi untuk direktori /dev. Bagaimanakah kita boleh membuat skrip berfungsi dengan mana-mana direktori? Apa yang diperlukan hanyalah satu perubahan kecil.

Cara Menggunakan Parameter Baris Perintah dalam Skrip

Banyak arahan, seperti |_+_| dan |_+_|, ambil parameter baris arahan. Ini memberikan maklumat kepada arahan, jadi ia tahu perkara yang anda mahu ia lakukan. Jika anda mahu |__+_| untuk bekerja pada direktori rumah anda dan juga untuk menunjukkan fail tersembunyi , anda boleh menggunakan arahan berikut, di mana tilde |_+_| dan |_+_| (semua) pilihan ialah parameter baris arahan:

file_count

Skrip kami boleh menerima parameter baris arahan. Mereka dirujuk sebagai |__+_| untuk parameter pertama, |__+_| sebagai yang kedua, dan seterusnya, sehingga |_+_| untuk parameter kesembilan. (Sebenarnya, terdapat |_+_|, juga, tetapi itu dikhaskan untuk sentiasa memegang skrip.)

Iklan

Anda boleh merujuk parameter baris arahan dalam skrip sama seperti anda akan pembolehubah biasa. Mari ubah suai skrip kami, seperti yang ditunjukkan di bawah, dan simpan dengan nama baharu |_+_|:

$( )

Kali ini, |__+_| pembolehubah diberikan nilai parameter baris arahan pertama, |_+_|.

Selebihnya skrip berfungsi sama seperti sebelum ini. Daripada penyelesaian khusus, skrip anda kini menjadi penyelesaian umum. Anda boleh menggunakannya pada mana-mana direktori kerana ia tidak dikodkan untuk berfungsi hanya dengan /dev.

Begini cara anda menjadikan skrip boleh laku:

$

Sekarang, cuba dengan beberapa direktori. Anda boleh melakukan /dev terlebih dahulu untuk memastikan anda mendapat hasil yang sama seperti sebelum ini. Taip yang berikut:

$( ) file_count file_count

Anda mendapat hasil yang sama (207 fail) seperti sebelumnya untuk direktori /dev. Ini menggalakkan, dan anda mendapat keputusan khusus direktori untuk setiap parameter baris arahan yang lain.

Untuk memendekkan skrip, anda boleh mengetepikan pembolehubah, |_+_|, sama sekali dan hanya merujuk |_+_| sepanjang, seperti berikut:

ls

Bekerja dengan Pembolehubah Khas

Kami menyebut |_+_|, yang sentiasa ditetapkan kepada nama fail skrip. Ini membolehkan anda menggunakan skrip untuk melakukan perkara seperti mencetak namanya dengan betul, walaupun ia dinamakan semula. Ini berguna dalam situasi pengelogan, di mana anda ingin mengetahui nama proses yang menambahkan entri.

Berikut ialah pembolehubah pratetap khas yang lain:

    $ #: Berapa banyak parameter baris arahan dihantar ke skrip. $ @: Semua parameter baris arahan dihantar ke skrip. $?: Status keluar dari proses terakhir untuk dijalankan. $$: ID Proses (PID) skrip semasa. $USER: Nama pengguna pengguna yang melaksanakan skrip. $HOSTNAME: Nama hos komputer yang menjalankan skrip. $SECONDS: Bilangan saat skrip telah dijalankan. $RANDOM: Mengembalikan nombor rawak. $ LINENO: Mengembalikan nombor baris semasa skrip.
Iklan

Anda mahu melihat kesemuanya dalam satu skrip, bukan? Awak boleh! Simpan yang berikut sebagai fail teks dipanggil, |_+_|:

folder_to_count

Taip yang berikut untuk menjadikannya boleh laku:

wc

Kini, anda boleh menjalankannya dengan sekumpulan parameter baris arahan yang berbeza, seperti yang ditunjukkan di bawah.

Pembolehubah Persekitaran

Bash menggunakan pembolehubah persekitaran untuk mentakrifkan dan merekodkan sifat persekitaran yang dicipta apabila ia dilancarkan. Maklumat pegangan ini boleh diakses dengan mudah oleh Bash, seperti nama pengguna anda, tempat, bilangan perintah yang boleh disimpan oleh fail sejarah anda, editor lalai anda dan banyak lagi.

Untuk melihat pembolehubah persekitaran aktif dalam sesi Bash anda, gunakan arahan ini:

-l

Jika anda menatal senarai, anda mungkin mendapati beberapa yang berguna untuk rujukan dalam skrip anda.

Cara Mengeksport Pembolehubah

Apabila skrip berjalan, ia berada dalam prosesnya sendiri dan pembolehubah yang digunakan tidak dapat dilihat di luar proses tersebut. Jika anda ingin berkongsi pembolehubah dengan skrip lain yang dilancarkan skrip anda, anda perlu mengeksport pembolehubah itu. Kami akan menunjukkan kepada anda cara melakukannya dengan dua skrip.

Mula-mula, simpan yang berikut dengan nama fail |_+_|:

wcIklan

Ini mewujudkan dua pembolehubah, |_+_| dan |_+_|, dan ia memberikan beberapa nilai. Ia mencetak ini ke tetingkap terminal, mengeksport pembolehubah dan memanggil |_+_|. Apabila |_+_| ditamatkan, dan aliran proses kembali ke skrip ini, ia sekali lagi mencetak pembolehubah ke tetingkap terminal. Kemudian, anda boleh melihat jika mereka berubah.

Skrip kedua yang akan kami gunakan ialah |_+_|. Ini ialah skrip yang |__+_|panggil. Taip yang berikut:

ls

Skrip kedua ini mencetak nilai dua pembolehubah, memberikan nilai baharu kepada mereka, dan kemudian mencetaknya semula.

Untuk menjalankan skrip ini, anda perlu menaip yang berikut untuk menjadikannya boleh laku:

file_count

Dan sekarang, taip yang berikut untuk melancarkan |_+_|:

ls

Inilah yang output memberitahu kita:

    script_one.shmencetak nilai pembolehubah, iaitu alpha dan bravo. script_two.shmencetak nilai pembolehubah (alpha dan bravo) semasa ia menerimanya. script_two.shmenukarnya kepada charlie dan delta. script_one.shmencetak nilai pembolehubah, yang masih alpha dan bravo.

Apa yang berlaku dalam skrip kedua, kekal dalam skrip kedua. Ia seperti salinan pembolehubah dihantar ke skrip kedua, tetapi ia dibuang apabila skrip itu keluar. Pembolehubah asal dalam skrip pertama tidak diubah oleh apa-apa yang berlaku pada salinannya dalam skrip kedua.

Cara Petikan Pembolehubah

Anda mungkin perasan bahawa apabila skrip merujuk pembolehubah, ia berada dalam tanda petikan |_+_|. Ini membolehkan pembolehubah dirujuk dengan betul, jadi nilainya digunakan apabila baris dilaksanakan dalam skrip.

Iklan

Jika nilai yang anda tetapkan kepada pembolehubah termasuk ruang, nilai tersebut mestilah dalam tanda petikan apabila anda menetapkannya kepada pembolehubah. Ini kerana, secara lalai, Bash menggunakan ruang sebagai pembatas.

Berikut adalah contoh:

wc

Bash melihat ruang sebelum Geek sebagai petunjuk bahawa arahan baharu sedang dimulakan. Ia melaporkan bahawa tiada arahan sedemikian, dan meninggalkan baris. |_+_| menunjukkan kepada kita bahawa |__+_| pembolehubah tidak mempunyai apa-apa—walaupun teks How-To.

Cuba itu sekali lagi dengan tanda petikan di sekitar nilai, seperti yang ditunjukkan di bawah:

ls

Kali ini, ia diiktiraf sebagai nilai tunggal dan ditetapkan dengan betul kepada |_+_| pembolehubah.

echo Adakah Kawan Anda

Ia boleh mengambil sedikit masa untuk membiasakan diri dengan perintah penggantian, memetik pembolehubah dan mengingati masa untuk memasukkan tanda dolar.

Sebelum anda menekan Enter dan melaksanakan baris perintah Bash, cuba dengan |_+_| di hadapannya. Dengan cara ini, anda boleh memastikan apa yang akan berlaku adalah apa yang anda mahukan. Anda juga boleh menangkap sebarang kesilapan yang mungkin anda lakukan dalam sintaks.

Perintah Linux
Fail tar · pv · kucing · tac · chmod · cengkaman · perbezaan · sed · Dengan · lelaki · pushd · popd · fsck · testdisk · seq · fd · pandoc · CD · $PATH · awk · sertai · jq · lipat · uniq · journalctl · ekor · negeri · ls · fstab · dibuang · kurang · chgrp · chown · rev · tengok · rentetan · taip · menamakan semula · zip · buka zip · lekapkan · umount · pasang · fdisk · mkfs · rm · rmdir · rsync · df · gpg · kita · nano · mkdir · daripada · ln · tampalan · menukar · rclone · carik-carik · SRM
Proses alias · skrin · atas · bagus · renice · kemajuan · jejak · sistem · tmux · chsh · sejarah · di · kumpulan · percuma · yang · dmesg · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · masa tamat · dinding · ya · bunuh · tidur · sudo · miliknya · masa · tambah kumpulan · usermod · kumpulan · lshw · menutup · but semula · berhenti · matikan · passwd · lscpu · crontab · Tarikh · bg · fg
Rangkaian netstat · ping · traceroute · ip · ss · siapakah · fail2ban · bmon · awak · jari · nmap · ftp · keriting · wget · who · siapakah saya · Dalam · iptables · ssh-keygen · ufw

BERKAITAN: Komputer Riba Linux Terbaik untuk Pembangun dan Penggemar

BACA SETERUSNYA Foto Profil untuk Dave McKay Dave McKay
Dave McKay pertama kali menggunakan komputer apabila pita kertas yang ditebuk sedang popular, dan dia telah memprogramkan sejak itu. Selepas lebih 30 tahun dalam industri IT, beliau kini seorang wartawan teknologi sepenuh masa. Semasa kerjayanya, beliau telah bekerja sebagai pengaturcara bebas, pengurus pasukan pembangunan perisian antarabangsa, pengurus projek perkhidmatan IT, dan, yang terbaru, sebagai Pegawai Perlindungan Data. Tulisannya telah diterbitkan oleh howtogeek.com, cloudsavvyit.com, itenterpriser.com, dan opensource.com. Dave ialah seorang penginjil Linux dan penyokong sumber terbuka.
Baca Bio Penuh

Artikel Yang Menarik