Subshells Linux untuk pemula dengan contoh

Subshells Linux untuk pemula dengan contoh

Memanfaatkan Subsan dalam Bash memberi Anda kemampuan untuk menghasilkan informasi sensitif konteks dari kanan dalam perintah bash Anda. Misalnya, jika Anda ingin memodifikasi string teks tepat di dalam gema pernyataan, maka ini dapat dilakukan dengan mudah dengan subshells.

Dalam tutorial ini Anda akan belajar:

  • Cara menggunakan menggunakan penggunaan subshells dalam bash
  • Cara menggunakan subshells untuk mendapatkan informasi sensitif konteks
  • Contoh Penggunaan Subsan Dasar
Subshells Linux untuk pemula dengan contoh

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
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: Dua sintaksis yang berbeda

Bash memungkinkan dua sintaksis subshell yang berbeda, yaitu $ () dan quiting kembali pernyataan yang dikelilingi. Mari kita lihat beberapa contoh mudah untuk memulai:

$ echo '$ (echo' a ')' $ (echo a) $ echo "$ (echo 'a')" a $ echo "a $ (echo 'b') c" abc $ echo "a'echo 'b "C" ABC 


Dalam perintah pertama, sebagai contoh, kami menggunakan ' Kutipan tunggal. Ini menghasilkan perintah subsklell kami, di dalam kutipan tunggal, untuk ditafsirkan sebagai teks literal alih -alih perintah. Ini adalah pesta standar: ' menunjukkan literal, " menunjukkan bahwa string akan diuraikan untuk subshells dan variabel.

Dalam perintah kedua kami menukar ' ke " dan dengan demikian string diuraikan untuk perintah dan variabel yang sebenarnya. Hasilnya adalah bahwa subshell sedang dimulai, berkat sintaks subshell kami ($ ()), dan perintah di dalam subshell (gema 'a') sedang dieksekusi secara harfiah, dan dengan demikian A diproduksi, yang kemudian dimasukkan di level menyeluruh / teratas gema. Perintah pada tahap itu dapat dibaca sebagai echo "a" dan dengan demikian outputnya A.

Dalam perintah ketiga, kami lebih lanjut memperluas ini untuk membuatnya lebih jelas bagaimana subsklells bekerja di dalam konteks. Kami menggemakan surat itu B di dalam subshell, dan ini bergabung di sebelah kiri dan kanan dengan huruf A Dan C menghasilkan output keseluruhan ABC dengan cara yang mirip dengan perintah kedua.

Dalam perintah keempat dan terakhir, kami mencontohkan sintaks subshell bash alternatif dari menggunakan itik belakang alih-alih $ (). Penting untuk mengetahui hal itu $ () adalah sintaks yang disukai, dan bahwa dalam beberapa kasus jarak jauh, sintaks berbasis back-tick dapat menghasilkan beberapa kesalahan penguraian di mana $ () tidak. Dengan demikian saya akan sangat mendorong Anda untuk selalu menggunakan $ () Sintaks untuk subshells, dan ini juga apa yang akan kami gunakan dalam contoh berikut.

Contoh 2: Sedikit lebih kompleks

$ Touch a $ echo "-$ (ls [a-z])" -a $ echo "-=-|| $ (ls [a-z] | xargs ls -l) ||-=-"-=-|| -rw -rw-r-- 1 roel roel 0 Sep 5 09:26 a ||-=- 

Di sini, pertama -tama kami membuat file kosong dengan menggunakan sentuh a memerintah. Selanjutnya, kami menggunakan gema untuk menghasilkan sesuatu yang subkilasi kita $ (ls [a-z]) akan menghasilkan. Tentu, kami dapat menjalankan ls langsung dan menghasilkan lebih atau kurang hasil yang sama, tetapi perhatikan bagaimana kami menambahkan - ke output sebagai awalan.

Di perintah terakhir, kami memasukkan beberapa karakter di bagian depan dan akhir gema perintah yang membuat output terlihat sedikit lebih bagus. Kami menggunakan subshell untuk menemukan terlebih dahulu A file yang kami buat sebelumnya (ls [a-z]) dan kemudian - masih di dalam subshell - lulus hasil perintah ini (yang hanya akan menjadi A Secara harfiah - i.e. file yang kami buat di perintah pertama) ke ls -l menggunakan pipa (|) dan xargs memerintah. Untuk informasi lebih lanjut tentang Xargs, silakan lihat artikel kami Xargs untuk pemula dengan contoh dan multi -berulir xargs dengan contoh.

Contoh 3: Kutipan ganda di dalam subshells dan sub-subshells!

echo "$ (echo" $ (echo "itu berfungsi") "| sed 's | it | itu pasti |')" pasti berfungsi 


Keren, tidak? Di sini kita melihat bahwa kutipan ganda dapat digunakan di dalam subshell tanpa menghasilkan kesalahan parsing. Kita juga melihat bagaimana subkilas dapat bersarang di dalam subkilasi lain. Apakah Anda dapat menguraikan sintaksis? Cara termudah adalah dengan "di tengah atau inti dari semua subshells" yang dalam hal ini akan menjadi yang sederhana echo "itu berhasil".

Perintah ini akan menghasilkan berhasil Sebagai hasil dari panggilan subsklell $ (echo "itu bekerja"). Gambar berhasil di tempat subsklell, saya.e.

echo "$ (echo" itu berhasil "| sed | itu | itu pasti | ')" pasti berhasil 

Ini sudah terlihat lebih sederhana. Selanjutnya sangat membantu untuk mengetahui bahwa sed Perintah akan melakukan pengganti (terima kasih kepada S Perintah tepat sebelum | pemisah perintah) dari teks dia ke itu pasti. Anda dapat membaca sed perintah sebagai ganti __it__ dengan __it pasti__. Output dari subshell akanitu pasti berhasil ', saya.e.

echo "itu pasti berhasil" pasti berhasil 

Kesimpulan

Dalam artikel ini, kita telah melihat subshells itu pasti bekerja (pun yang dimaksudkan), dan bahwa mereka dapat digunakan dalam berbagai keadaan, karena kemampuan mereka untuk dimasukkan secara inline dan dalam konteks perintah menyeluruh. Subsan sangat kuat dan begitu Anda mulai menggunakannya, yah, kemungkinan tidak akan ada yang berhenti. Segera Anda akan menulis sesuatu seperti:

$ Var = "Selamat tinggal"; echo "terima kasih $ (echo" $ var "| sed 's |^| and |')" | sed 's | k | k you |' 

Yang ini adalah untuk Anda coba dan bermain -main dengan! Terima kasih dan sampai jumpa

Tutorial Linux Terkait:

  • Cara menggunakan subshells bash di dalamnya jika pernyataan
  • Subshell Linux Lanjutan dengan contoh
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Multi-threaded Bash Scripting & Manajemen Proses di…
  • Menguasai loop skrip bash
  • Perintah Linux Dasar
  • Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…