Bash Idiom Variabel Lanjutan untuk Manajemen Sensitivitas Kasus
- 1393
- 82
- Daryl Hermiston DVM
Setiap kali kami bekerja dengan string tekstual, cepat atau lambat masalah kasus muncul. Apakah kata harus sepenuhnya huruf besar, sepenuhnya huruf kecil, dengan surat yang dikapitalisasi pada awal kata atau kalimat, dan sebagainya.
Idiom adalah ekspresi bahasa alami dari tugas pemrograman sederhana. Misalnya, di Tidur 10
Perintah (yang akan menjeda terminal satu bekerja selama sepuluh detik), kata tersebut tidur
adalah ekspresi bahasa alami dari apa itu konstruk pengkodean berbasis waktu, yang dikembangkan dalam paket perangkat lunak Bash GNU Coreutils.
Ada sejumlah idiom yang terikat variabel khusus (i.e. Sufiks yang dapat ditambahkan ke nama variabel, menunjukkan apa yang ingin kami lakukan dengan variabel yang diberikan), yang dapat digunakan dalam bash untuk lebih mudah melakukan konversi jenis ini dengan cepat alih -alih harus menggunakan misalnya aliran SED Sed Stream Editor dengan ekspresi reguler untuk melakukan hal yang sama.
Jika Anda tertarik untuk menggunakan ekspresi reguler, lihat Bash Regexps kami untuk pemula dengan contoh -contoh Lanjutan Bash Regex dengan Contoh Artikel!
Ini membuat bekerja dengan variabel yang membutuhkan modifikasi kasus, atau jika
Pernyataan pengujian jauh lebih mudah dan memberikan fleksibilitas yang luar biasa. Idiom dapat ditambahkan langsung di dalam jika
pernyataan dan tidak perlu menggunakan subshell dengan sed
.
Sementara sintaksnya terlihat sedikit rumit untuk memulai, begitu Anda mempelajari sedikit trik dukungan mental untuk mengingat tombol yang tepat, Anda akan baik dalam cara Anda menggunakan idiom ini dalam skrip Anda berikutnya atau bash skrip satu-liner di baris perintah!
Dalam tutorial ini Anda akan belajar:
- Cara menggunakan
^
,^^
,,
Dan,,
Bash Variable Suffix Idioms - Cara menggunakan ekspresi reguler
[]
kisaran idiom dalam kombinasi dengan ini - Cara menggunakan
^
Dan,
Idiom langsung dari dalamjika
pernyataan - Contoh terperinci yang mencontohkan penggunaan
^
,^^
,,
Dan,,
Persyaratan dan konvensi perangkat lunak yang digunakan
Kategori | Persyaratan, konvensi atau versi perangkat lunak yang digunakan |
---|---|
Sistem | Distribusi Linux-independen |
Perangkat lunak | Baris perintah bash, sistem berbasis Linux |
Lainnya | Utilitas apa pun yang tidak termasuk dalam shell bash secara default dapat diinstal menggunakan sudo apt-get install-name utilitas (atau instalasi yum untuk sistem berbasis redhat) |
Konvensi | # - mengharuskan Linux -Commands untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah$-mengharuskan Linux-Commands untuk dieksekusi sebagai pengguna biasa |
Contoh 1: Membuat variabel penuh huruf besar
Mari kita mulai dengan contoh yang menunjukkan cara mencetak variabel sebagai huruf besar:
$ Var = "Make Me Uppercase"; echo "$ var ^^" buat saya huruf besar
Pertama kali kami mengatur variabel Var
ke Buatlah saya huruf besar. Cara kami melakukan ini adalah dengan menggunakan ^^
Di akhir nama variabel - sufiks, ungkapan bash, untuk memberi tahu Bash Internal Interpreter untuk mengganti teks kami dengan versi huruf besar itu.
Perhatikan bahwa setiap kali satu menetapkan variabel, satu akan menggunakan Var =
sintaks, meninggalkan variabel terkemuka ($
) Idiom bash. Penggunaan selanjutnya, yang bukan penugasan kembali sendiri, akan menggunakan $
sintaksis. Karenanya, echo menggunakan $
.
Anda juga bisa melihat Dan
digunakan di sekitar nama variabel. Meskipun ini tidak sepenuhnya diperlukan:
$ Var = 1; echo $ var 1
Ini sangat direkomendasikan, dan saya pribadi juga merekomendasikannya, untuk selalu mengutip variabel dengan benar, karena menghindari kesalahan dan bahkan masalah seperti di mana tidak jelas untuk penafsiran bash di belakang layar ketika variabel berakhir:
$ Var = "a"; echo "$ vara"
Dalam contoh pertama, penafsir bash melihat nama variabel dimulai ($
) dan terus membaca sampai menyentuh ruang, seperti yang dapat dilihat di sini:
$ Var = "a"; echo "$ var a" a
Di sini kami harus memperkenalkan ruang hanya untuk membuat kami gema
bekerja dengan benar.
Dengan kata lain, dalam contoh sebelumnya, nama variabel yang dilihat Bash adalah Vara
dan tidak dapat membagi/melihat di mana variabel berakhir dan sisa string-ke-output dimulai atau memulai kembali. Mari kita bandingkan ini dengan variabel enkapsulasi dengan benar Dan
:
$ Var = "a"; echo "$ var a" aa
Di sini tidak ada masalah yang terlihat; Jelas untuk penafsiran bash itu $ Var
adalah variabel dan A
adalah teks yang harus diikuti setelahnya, semua berkat merangkum variabel kami dengan benar.
Ini juga diterjemahkan kembali, dengan cara yang kuat, untuk menggunakan spesial ^^
Idiom dan idiom bash lainnya. Mari kita contohkan ini:
$ Var = "Make Me Uppercase"; echo $ var ^^ buat saya huruf besar ^^ $ var = "make me uppercase"; echo "$ var ^^" Jadikan aku huruf besar ^^
Dalam hal ini, Bash dapat melihat bahwa kami ingin Var
variabel yang akan dicetak, meskipun menafsirkan ^^
sebagai teks standar. Seperti dapat dilihat dengan jelas dari contoh ini dan sebelumnya, ini adalah praktik terbaik untuk selalu mengelilingi nama variabel dengan Dan
.
Contoh 2: Membuat huruf kecil variabel penuh
Sekarang kita telah melihat cara membuat huruf besar variabel penuh dengan menggunakan ^^
Idiom, mari kita lihat cara mengubah variabel penuh menjadi huruf kecil dengan menggunakan ,,
idiom:
$ Var = "Make Me Theckcase"; echo "$ var ,," jadikan saya huruf kecil
Ini adalah idiom sintaks yang menarik untuk digunakan ,,
Sebagai akhiran untuk variabel, tetapi berfungsi dengan benar seperti yang ditunjukkan.
Sedikit trik dukungan mental untuk mengingat ini
Cara/metode yang bagus untuk mengingat apa pun adalah dengan mengkonfirmasi secara visual atau membayangkan apa pun yang perlu diingat. Jika Anda dapat menambahkan beberapa konstruksi mental ke dalam hal ini, seperti membuat hubungan dengan hal -hal lain, Anda cenderung mengingat hal yang sama lain kali.
Ini untuk melihat keyboard fisik Anda, dan jika Anda menggunakan keyboard querty seperti saya, Anda akan melihatnya ^
adalah shift-6 dan ',' tepat di sebelah M
. Bagaimana ini membantu?
Pertama, The 6
/^
Kuncinya adalah di atas, dan ,
Kuncinya ada di bagian bawah. Selanjutnya, The ,
kunci juga yang ada di bagian bawah terdekat non-alfabet-karakter ke 6
kunci. Terakhir, kedua tombol berada di sisi kanan keyboard yang mengingatkan seseorang bahwa idiom ini adalah akhiran, bukan awalan, ke variabel
Setelah Anda secara visual mengkonfirmasi ini sekali atau dua kali, kemungkinan besar akan menempel di memori dengan cukup baik dan Anda akan dapat menggunakan idiom ini dalam skrip bash berikutnya atau satu-liner tanpa harus merujuk kembali sintaksis.
Contoh 3: Mengubah huruf tertentu
Kami juga dapat membuat huruf huruf besar tertentu:
$ Var = "ababab cdcdcd"; echo "$ var ^^ b" ababab cdcdcd
Atau huruf kecil:
$ Var = "ababab cdcdcd"; echo "$ var ,, c" ababab cdcdcd
Ada dua gotcha/batasan di sini. Pertama, kita harus memastikan untuk menentukan kasus surat yang tepat untuk memulai. Dengan demikian, menentukan penggantian huruf kecil untuk surat tersebut C
Tidak akan berhasil:
$ Var = "ababab cdcdcd"; echo "$ var ,, c" ababab cdcdcd
Karena tidak ada huruf kecil C
Dalam teks, hanya ada C
(huruf besar), dan ini berfungsi dengan baik sebagai contoh yang ditunjukkan di atas yang terakhir.
Kami juga tidak dapat menentukan beberapa huruf dengan menggunakan salah satu dari format yang masih bisa dikerjakan, tetapi tidak bekerja: ini:
$ Var = "ababab cdcdcd"; echo "$ var ,, cd" ababab cdcdcd $ var = "ababab cdcdcd"; echo "$ var ,, c ,, d" ababab cdcdcd
Cara untuk membuat ini bekerja dengan benar adalah dengan menggunakan format ekspresi reguler [... Daftar Seleksi…]
, sebagai berikut:
$ Var = "ababab cdcdcd"; echo "$ var ,, [cd]" ababab cdcdcd
Memulai kalimat dengan karakter huruf besar atau kecil
Mengubah hanya huruf pertama yang dimungkinkan juga:
$ Var = "ababab cdcdcd"; echo "$ var^" ababab cdcdcd $ var = "ababab cdcdcd"; echo "$ var," ababab cdcdcd
Di sini kami menggunakan satu ^
atau ,
Untuk membuat huruf pertama huruf besar atau huruf kecil.
Menggunakan Idiom Sufiks Variabel Bash ini dari dalam Pernyataan IF
Kami juga dapat menggunakan idiom akhiran variabel bash ini langsung dari dalam jika
Pernyataan:
$ Var = "ABC"; if ["$ var ^^" == "abc"]; Lalu Echo 'cocok!'; lain gema 'tidak cocok!'; fi cocok!
Di sini kami memiliki variabel Var
dengan nilai ABC
. Selanjutnya, di dalam jika
pernyataan, kami mengubah isi variabel, secara dinamis, menjadi ABC
dengan menggunakan $ Var ^^
Sebagai string perbandingan pertama kami di jika
penyataan. Selanjutnya, kami membandingkan dengan ABC
dan kami memiliki kecocokan, membuktikan bahwa substitusi inline kami untuk huruf besar berhasil.
Ini jauh lebih sederhana daripada memulai subshell dan melakukan hal yang sama menggunakan sed
dan ekspresi reguler:
$ Var = "ABC"; if ["$ (echo" $ var "| sed 's | [a-z] | \ u & | g')" == "abc"]; Lalu Echo 'cocok!'; lain gema 'tidak cocok!'; fi cocok!
Itu \ U &
di dalam sed
Instruksi dapat dibaca sebagai 'Ubah tangkapan apa pun (dilakukan oleh [a-z]
dan referensi oleh &
di dalam \ U &
)untuk huruf besar (
\ U ') setara dengan. Bandingkan kompleksitas solusi ini dengan yang sebelumnya.
Contoh if lainnya
$ Var = "ABC"; if [["$ var ^^ b" == * "b" *]]; Lalu Echo 'cocok!'; lain gema 'tidak cocok!'; fi cocok!
Dalam contoh ini, kami mengubah teks ABC
ke ABC
dengan menggunakan $ Var ^^ b
Seperti yang dijelaskan sebelumnya (HANYA HANDUR SURAT B
). Kemudian kami menggunakan perbandingan yang memiliki tanda bintang di kiri dan kanan surat itu B
. Ini berarti kami mencari ... string apa pun ... diikuti oleh B
diikuti oleh ... string apa pun ... (perhatikan bahwa seseorang juga dapat meninggalkan tanda bintang atau mengakhiri tanda tangan untuk mencocokkan kalimat yang dimulai dengan, atau diakhiri dengan B
masing -masing).
Kesimpulan
Dalam artikel ini, kami menjelajahi idiom sufiks variabel bash ^
, ^^
, ,
Dan ,,
. Kami melihat bagaimana mereka dapat digunakan untuk mengganti string dengan varian atas dan huruf kecil mereka, dan cara bekerja dengan satu atau lebih huruf individual, termasuk membuat huruf besar huruf atau huruf kecil.
Kami juga mengeksplorasi cara menggunakan idiom ini lebih jauh dari dalam pesta jika pernyataan. Akhirnya kami memberikan trik dukungan memori yang diusulkan untuk mengingat karakter apa yang dapat digunakan, dan di mana, sebagai identifikasi bash untuk substitusi teks atas dan huruf kecil.
Tinggalkan kami pemikiran dengan perintah substitusi kasus teks paling keren Anda! Menikmati!
Tutorial Linux Terkait:
- Bash Script: Jeda skrip sebelum melanjutkan
- Lanjutan regex bash canggih dengan contoh
- Manajemen proses latar belakang bash
- Multi-threaded Bash Scripting & Manajemen Proses di…
- Loop bash dengan contoh
- Variabel bash khusus dengan contoh
- Waktu skrip dan prosedur bash Anda dari dalam kode
- Bash Regexps untuk pemula dengan contoh
- Bandingkan string dalam bash
- Parsing variabel yang benar dan mengutip dalam bash
- « Buat redirect dan tulis ulang aturan ke .htaccess pada server web apache
- Cara Membaca dan Membuat File CSV Menggunakan Python »