Cara Menggunakan Pengembangan $ () dan $ {} dalam Skrip Shell

How Use Expansions Shell Script



Sekiranya anda menggunakan sistem Linux, anda mungkin sudah mengetahui betapa pentingnya antara muka shell untuk berinteraksi dengan sistem anda. Pada kebanyakan distribusi Linux, Bash adalah shell lalai yang kami gunakan untuk menjalankan perintah dan melaksanakan skrip. Skrip shell adalah sekumpulan perintah yang, ketika dijalankan, digunakan untuk melakukan beberapa fungsi berguna di Linux. Fail .sh ini, ditulis oleh pengguna, mengandungi semua perintah yang digunakan untuk melakukan tugas sehingga kita tidak perlu menjalankan perintah tersebut secara manual, satu per satu.

Dalam tutorial ini, kami akan menerangkan dua pengembangan bash yang paling berguna yang digunakan dalam skrip shell:







  • $ () - penggantian arahan
  • $ {} - penggantian parameter / pengembangan pemboleh ubah

Perluasan Shell dilakukan pada skrip setelah dibagi menjadi token. Token adalah urutan watak yang dianggap satu unit oleh cengkerang. Ia boleh menjadi kata atau pengendali.



Kami telah menjalankan semua contoh dan skrip yang disebutkan dalam artikel ini pada sistem Debian 10 Buster. Walau bagaimanapun, anda boleh menirunya dengan mudah pada kebanyakan cengkerang Linux. Kami menggunakan baris perintah Debian lalai, Terminal, untuk tutorial ini. Di Debian, anda boleh mengaksesnya melalui bar carian Pelancar Aplikasi seperti berikut:







Untuk mengakses pelancar Aplikasi, cukup tekan kekunci Super / Windows pada papan kekunci anda.

$ () Penggantian Perintah

Menurut manual rasmi Rujukan GNU Bash:



Penggantian arahan membolehkan output perintah untuk menggantikan perintah itu sendiri. Bash melakukan pengembangan dengan melaksanakan perintah dan mengganti penggantian perintah dengan output standard perintah, dengan sebarang baris baru yang akan dihapus. Talian baru yang disisipkan tidak dihapuskan, tetapi mungkin dihapuskan semasa pemisahan kata. Penggantian arahan berlaku apabila perintah dilampirkan seperti berikut:

$(arahan)
atau
'arahan'

Sebagai contoh, perintah gema berikut menggantikan output perintah tarikh sebagai inputnya:

$membuang$(Tarikh)
$membuang'Tarikh'

Anda juga boleh menggunakan penggantian perintah untuk memberikan nilai kepada pemboleh ubah. Sebagai contoh, kami akan mencetak tarikh hari ini melalui pemboleh ubah HARI INI seperti berikut:

$HARI INI= $(Tarikh)
$membuang '$ HARI INI'

Satu lagi utiliti penggantian perintah adalah pada gelung shell untuk mendapatkan input. Di sini, kami akan mencetak semua fail .txt di folder rumah kami menggunakan penggantian arahan:

untukfdalam /kediaman/kepada anda/ *.txt
buat
membuang '$ f'
selesai

Menggunakan Pergantian Perintah dalam Skrip Shell

Contoh di atas adalah beberapa cara di mana anda dapat menggunakan kekuatan penggantian perintah dalam skrip shell anda. Berikut adalah contoh laporan status yang dapat kita cetak menggunakan skrip shell berikut:

#! / bin / sh

membuang ***Laporan status***

HARI INI= $(Tarikh)
membuang 'Hari ini adalah$ HARI INI'

PENGGUNA= $(who | wc-tempat)
membuang 'PENGGUNA $pengguna sedang log masuk '

KEMASKINI= $(Tarikh;waktu rehat)
membuang 'Waktu operasi adalah$ KEMASKINI'

Penggantian arahan telah digunakan tiga kali dalam skrip ini; dalam mencetak tarikh, pengguna log masuk dan masa operasi. Kami menyimpan skrip seperti berikut:

Menjadikannya dapat dilaksanakan dan kemudian menjalankannya melalui arahan berikut:

$chmod+ x status.sh
$./statys.sh

Berikut adalah output skrip status.sh kami:

Anda tentu saja dapat membuat skrip yang lebih bermakna dengan mengikuti contoh yang baru sahaja kita sebutkan.

$ {} Penggantian / Pengembangan Parameter

Parameter, dalam Bash, adalah entiti yang digunakan untuk menyimpan nilai. Parameter dapat dirujuk dengan angka, nama, atau dengan simbol khas. Apabila parameter dirujuk oleh angka, itu disebut a parameter kedudukan . Apabila parameter dirujuk dengan nama, itu disebut a pemboleh ubah . Apabila parameter dirujuk oleh simbol khas, ini bermaksud parameter itu adalah autoset dengan penggunaan khas.

Pengembangan / penggantian parameter adalah proses mengambil nilai dari entiti / parameter yang dirujuk. Sepertinya anda mengembangkan pemboleh ubah untuk mendapatkan nilainya.

Sintaks pengembangan parameter yang paling mudah adalah yang berikut:

Inilah cara anda boleh menggunakan pengembangan parameter dalam Bash:

$ {parameter}

Sebagai contoh, penggunaan paling mudah adalah menggantikan parameter dengan nilainya:

$nama='john doe'
$membuang $ {nama}

Perintah ini akan menggantikan nilai nama pemboleh ubah yang akan digunakan oleh perintah echo:

Anda mungkin berfikir bahawa perkara yang sama dapat dicapai dengan menghindari pendakap keriting seperti berikut:

Jawapannya adalah bahawa semasa pengembangan parameter, pendakap keriting ini membantu dalam membatasi nama pemboleh ubah. Mari kita jelaskan apa yang kita maksudkan dengan menghadkan di sini. Izinkan saya menjalankan perintah berikut pada sistem saya:

$membuang 'Nama orang itu$ nama_'

Hasilnya tidak mencetak nilai nama pemboleh ubah kerana sistem berpendapat bahawa saya merujuk kepada pemboleh ubah nama_. Oleh itu, nama pemboleh ubah saya tidak dipisahkan. Pendakap keriting dalam contoh berikut akan membatasi nama pemboleh ubah dan mengembalikan hasilnya seperti berikut:

$membuang 'Nama orang itu$ {nama}_ '

Berikut adalah semua cara di mana pemboleh ubah diganti dalam Shell:

$ {pemboleh ubah} Perintah ini menggantikan nilai pemboleh ubah.
$ {pemboleh ubah: -word} Sekiranya pemboleh ubah adalah nol atau jika tidak ditetapkan, kata akan diganti dengan pemboleh ubah. Nilai pemboleh ubah tidak berubah.
$ {pemboleh ubah: = kata} Sekiranya pemboleh ubah adalah nol atau jika tidak ditetapkan, nilai pemboleh ubah ditetapkan ke perkataan.
$ {pemboleh ubah:? message} Sekiranya pemboleh ubah nol atau jika tidak ditetapkan, mesej dicetak ke ralat bash standard.
$ {pemboleh ubah: + kata} Sekiranya pemboleh ubah ditetapkan, perkataan digantikan pemboleh ubah. Walau bagaimanapun, nilai pemboleh ubah itu sendiri tidak berubah.

Contoh di atas adalah beberapa cara di mana anda dapat menggunakan kekuatan penggantian pemboleh ubah di Bash. Anda boleh memasukkan cara-cara ini untuk menggunakan pengembangan dalam skrip shell anda untuk mencapai tugas anda dengan optimum.