Tutorial Skrip Bash untuk Pemula

Bash Scripting Tutorial



Bahasa perintah lalai Linux adalah skrip Bash. Kita perlu menjalankan banyak perintah di Linux setiap hari untuk pelbagai tujuan. Tugas harian ini dapat automatik dengan menggunakan skrip bash. Mana-mana pengguna dapat mempelajari bahasa skrip ini dengan sangat mudah dan cepat. Sekiranya anda baru dalam program bash maka tutorial ini sesuai untuk anda.

Kandungan:

  1. Komen
  2. Perintah echo
  3. Pemboleh ubah
  4. Penyataan bersyarat
  5. Gelung
  6. Fungsi
  7. Memanggil program dalam skrip
  8. Membuat Menu
  9. Pemprosesan Baris Perintah
  10. Aritmetik
  11. Manipulasi tali
  12. Mengembalikan kod pengembalian dari skrip dan menangkap skrip lain
  13. Membaca dan menulis ke fail
  14. Paip

Komen

Menambah komen dengan kod adalah bahagian penting dari mana-mana bahasa pengaturcaraan. Komen tidak dihuraikan dengan skrip pada saat pelaksanaan. Pembaca dapat memahami mana-mana kod dengan betul sekiranya kod tersebut dikomentari dengan baik. Anda boleh menambahkan komen dengan pelbagai cara dalam skrip bash. Bagaimana anda boleh menambahkan komen satu baris dan berbilang baris dalam skrip bash ditunjukkan di bahagian ini. Buat fail bash dengan skrip berikut untuk mengetahui penggunaan komen bash. Di sini, simbol ‘#’ digunakan untuk menambahkan komen satu baris dan petikan tunggal (‘) dengan‘: ’digunakan untuk menambahkan komen berbilang baris.







bash_comment.sh



#! / bin / bash
#Tentukan nombor sebagai input
membuang 'Masukkan nombor'
membacake
:'
Periksa nombor inputnya
kurang daripada 10 atau lebih besar daripada 10 atau sama dengan 10
'

sekiranya [[ $ a -lt 10 ]]
kemudian
membuang 'Jumlahnya kurang dari 10'
elif [[ $ a -gt 10 ]]
kemudian
membuang 'Jumlahnya lebih besar daripada 10'
yang lain
membuang 'Jumlahnya sama dengan 10'
menjadi

Pengeluaran:



Jalankan skrip.





$bashbash_comment.sh

Di sini, skrip dilaksanakan tiga kali dengan nilai input 3, 10 dan 90. Output berikut akan muncul.



Sekiranya anda ingin mengetahui lebih lanjut mengenai komen bash maka anda boleh menyemaknya tutorial ini .

Pergi ke Atas

arahan gema

Perintah `echo` digunakan dalam bash untuk mencetak output di terminal. Pelbagai pilihan dapat digunakan dengan perintah echo dalam bash untuk mencetak output dengan cara yang berbeza. Buat fail bash dengan skrip berikut untuk mengetahui dua penggunaan perintah `echo` yang mudah. Di sini, perintah `gema` pertama akan mencetak data teks sederhana dengan baris baru dan perintah gema kedua akan mencetak teks sederhana tanpa baris baru.

echo_test.sh

#! / bin / bash
#Cetak teks pertama
membuang 'Cetak teks dengan baris baru'
#Cetak teks kedua
membuang -n 'Cetak teks tanpa baris baru'

Pengeluaran:

Jalankan skrip.

$bashecho_test.sh

Output berikut akan muncul setelah melaksanakan perintah di atas.

Terdapat banyak kegunaan perintah `echo` dalam bash. Anda boleh menyemak tutorial ini untuk mengetahui lebih lanjut mengenai perintah `echo`.

Pergi ke Atas

Pemboleh ubah

Pengisytiharan berubah-ubah adalah bahagian yang diperlukan dari mana-mana bahasa pengaturcaraan. Pemboleh ubah Bash dapat dinyatakan dengan cara yang berbeza. Apabila nilai diberikan dalam pemboleh ubah maka tidak ada simbol yang digunakan pada permulaan pemboleh ubah. Simbol ‘$’ digunakan dengan nama pemboleh ubah semasa membaca nilai pemboleh ubah. Pemboleh ubah boleh digunakan dari terminal atau boleh digunakan dalam skrip bash mana pun.

Perintah berikut akan menyatakan pemboleh ubah rentetan bernama mystr dengan nilai tertentu dan seterusnya mencetak nilai pemboleh ubah di terminal.

$mystr='Saya suka pengaturcaraan bash'
$membuang $ mystr

Pengeluaran:

Buat fail bash dengan skrip berikut. Dua pemboleh ubah dinyatakan di sini. Ini adalah $ a dan $ b . Sekiranya nilai input yang disimpan di $ a adalah sama dengan $ b kemudian mesej, Nombor sama akan dicetak sebaliknya Nombor tidak sama akan dicetak.

var.sh

#! / bin / bash
membuang 'Masukkan nombor'
membacake
b=100
sekiranya [[ $ a -eq $ b ]]
kemudian
membuang 'Nombor sama'
yang lain
membuang 'Nombor tidak sama'
menjadi

Pengeluaran:

Jalankan skrip.

$bashvar.sh

Perintah di atas dilaksanakan selama dua kali dengan nilai 56 dan 100. Output berikut akan muncul.

Sekiranya anda ingin mengetahui lebih lanjut mengenai pemboleh ubah bash maka anda boleh menyemaknya tutorial ini .

Pergi ke Atas

Penyataan bersyarat

Seperti bahasa pengaturcaraan lain, anda boleh menggunakan pernyataan bersyarat dalam bash. ' Sekiranya-kemudian-lain 'Dan' kes Penyataan digunakan terutamanya untuk melaksanakan pernyataan keadaan dalam bahasa pengaturcaraan apa pun. Penggunaan pernyataan bersyarat dengan menggunakan 'Jika' pernyataan ditunjukkan dalam bahagian tutorial ini. Buat fail bash dengan skrip berikut di mana pernyataan bersyarat digunakan. Di sini, dua nilai akan diambil dari pengguna sebagai input dan disimpan dalam pemboleh ubah, kod $ , dan $ umur . Pernyataan ‘if’ digunakan untuk memeriksa nilai $ umur lebih besar daripada atau sama dengan 18 dan nilai kod $ adalah 1100 . Sekiranya kedua-dua syarat itu benar maka mesejnya, Anda layak untuk menonton filem akan dicetak sebaliknya Anda tidak layak menonton filem itu akan dicetak.

cond.sh

#! / bin / bash

membuang 'Masukkan kod anda'
membacakod
membuang 'Masukkan umur anda'
membacaumur

sekiranya [[ $ umur -beri 18 && kod $ -eq '1100' ]]
kemudian
membuang 'Anda layak untuk menonton filem'
yang lain
membuang 'Anda tidak layak menonton filem'
menjadi

Pengeluaran:

Jalankan skrip.

$bashcond.sh

Output berikut akan muncul setelah mengambil nilai input yang berbeza. 1100 diberikan sebagai kod dan 5 diberikan sebagai umur untuk pelaksanaan pertama dan jika keadaan kembali salah untuk nilai-nilai ini. 1100 diberikan sebagai kod dan 45 diberikan sebagai usia untuk pelaksanaan kedua yang kembali benar untuk jika keadaan.

Sekiranya anda ingin mengetahui lebih lanjut mengenai pernyataan bersyarat bash maka anda boleh menyemak tutorial ini.

Pergi ke Atas

Gelung

Apabila beberapa bahagian skrip perlu dijalankan berkali-kali maka gelung digunakan untuk melakukan tugas. Bash menyokong tiga jenis pernyataan gelung seperti bahasa lain. Ini adalah untuk, sementara dan sehingga gelung. Berdasarkan keperluan pengaturcaraan, gelung tertentu digunakan dalam skrip. Kegunaan ketiga-tiga jenis gelung ini ditunjukkan dalam bahagian ini dengan menggunakan contoh mudah.

Menggunakan untuk gelung

Buat fail bash dengan skrip berikut di mana untuk` gelung digunakan untuk lelaran. `untuk` gelung digunakan terutamanya untuk mengulangi senarai data atau array. Di sini, senarai nama hari minggu digunakan dan setiap nama hari minggu dilancarkan dengan menggunakan gelung. `jika` pernyataan digunakan untuk mencetak mesej tertentu berdasarkan nama hari minggu.

untuk.sh

#Baca nama hari minggu dalam setiap lelaran gelung
untukharidalamIsnin Selasa Rabu Khamis Jumaat Sabtu Ahad
buat

#Periksa nama hari minggu adalah Isnin atau Khamis
sekiranya [[ $ hari=='Isnin' || $ hari=='Khamis' ]]
kemudian
membuang 'Mesyuarat pada$ harijam 9:30 pagi '

#Periksa nama hari minggu adalah hari Selasa atau Rabu atau Jumaat
elif [[ $ hari=='Selasa' || $ hari=='Rabu' || $ hari=='Jumaat' ]]
kemudian
membuang 'Latihan pada$ harijam 11:00 pagi '
yang lain

#Cetak ‘Percutian’ untuk hari-hari lain
membuang '$ hariAdakah Percutian '
menjadi
selesai

Pengeluaran:

Jalankan skrip.

$bashuntuk.sh

Output berikut akan muncul setelah menjalankan skrip.

Sekiranya anda ingin mengetahui lebih banyak penggunaan bash untuk gelung maka anda boleh menyemak tutorial ini.

Menggunakan gelung sambil

Buat fail bash dengan skrip berikut di mana semasa ` gelung digunakan untuk lelaran. Skrip ini akan mencetak nombor-nombor dari 1 hingga 20 yang genap dan boleh dibahagi dengan 5. Di sini, kaunter $ pemboleh ubah digunakan untuk mengawal lelaran gelung dan nilai pemboleh ubah ini meningkat sebanyak 1 dalam setiap lelaran. Bila `jika` keadaan akan kembali benar dan akan mencetak nilai kaunter $ .

#! / bin / bash

#Cetak mesej
membuang 'Cetak nombor yang genap dan boleh dibahagi dengan 5'

#Mulakan kaunter
kaunter=1

# Ulangi gelung sehingga nilai pembilang $ kurang dari atau sama dengan 20
sementara [ kaunter $ -tempat dua puluh ]
buat

#Periksa kaunter $ dibahagi dengan 2 dan 5
sekiranya [[ kaunter $%2-eq 0 && kaunter $%5-eq 0 ]]
kemudian
#Cetak $ kaunter tanpa talian baru
membuang 'kaunter $'
menjadi

#Menambah $ kaunter sebanyak 1
((pembilang ++))
selesai
membuang 'Selesai'

Pengeluaran:

$bashsementara.sh

Hanya ada nombor dalam 1-20 yang genap dan dapat dibahagi dengan 5. Output berikut akan muncul setelah menjalankan skrip.

Sekiranya anda ingin mengetahui lebih banyak penggunaan bash ` sementara` gelung maka anda boleh menyemak tutorial ini .

Menggunakan hingga gelung

Buat fail bash dengan skrip berikut di mana sehingga` gelung digunakan untuk lelaran. Skrip ini akan mencetak semua nombor ganjil dari 0 hingga 20. $ n pemboleh ubah digunakan dalam skrip ini untuk mengulangi gelung.

sehingga.sh

#! / bin / bash

# Memulakan pemboleh ubah, n
n=dua puluh

# Ulangi gelung sehingga nilai $ n lebih besar daripada 0
sehingga [ $ n -lt 0 ]
buat

#Periksa nilai n adalah ganjil
sekiranya [[ $ n%2-gt 0 ]]
kemudian
membuang $ n
menjadi

#Tingkatkan nilai n dengan 1
((n=$ n-1))
selesai

Pengeluaran:

Jalankan skrip.

$bashsehingga.sh

Skrip akan mencetak semua nombor genap dari 20 hingga 1. Output berikut akan muncul setelah menjalankan skrip.

Pergi ke Atas

Fungsi

Apabila sekumpulan kod perlu dijalankan beberapa kali dalam skrip maka fungsi tersebut digunakan untuk melakukan tugas. Anda hanya perlu memanggil fungsi dengan nama apabila skrip yang ditentukan dalam fungsi perlu dilaksanakan berkali-kali daripada menambahkan skrip yang sama berkali-kali. Braket pertama yang dimulakan dan diakhiri digunakan dengan nama fungsi untuk menyatakan fungsi dalam skrip bash. Fungsi boleh dipanggil hanya dengan nama fungsi dalam bash. Bash tidak menyokong argumen fungsi seperti bahasa pengaturcaraan standard yang lain. Tetapi nilainya dapat diteruskan ke fungsi bash dengan cara yang berbeza yang ditunjukkan dalam bahagian ini. Nilai boleh dikembalikan dari fungsi dengan penyataan kembali atau tanpa menggunakan penyataan kembali.

Buat file bash dengan skrip berikut untuk mengetahui bagaimana fungsi dapat dinyatakan dan dipanggil dalam skrip bash. Tiga fungsi dinyatakan dalam skrip. Fungsi pertama dinyatakan untuk mencetak pesanan ringkas, Pengaturcaraan Bash untuk pemula . Fungsi kedua dinyatakan untuk menetapkan nilai string dalam pemboleh ubah, $ pulangan_str yang akan dicetak, Pelajari pengaturcaraan bash dengan LinuxHint setelah memanggil fungsi. Fungsi ketiga dinyatakan untuk membaca nilai argumen sebagai radius lingkaran yang akan diberikan pada saat memanggil fungsi. Di sini, tempatan digunakan untuk membaca nilai hujah. Fungsi ini akan mengira luas bulatan berdasarkan nilai radius dengan menggunakan formula, πr2 dan mencetak nilai kawasan yang dikira.

func.sh

#! / bin / bash

#Tyatakan fungsi ringkas
fungsicetak_mesej()
{
membuang 'Pengaturcaraan Bash untuk pemula'
}

#Menyatakan fungsi untuk mengembalikan nilai rentetan
fungsiret_strdata()
{
#Mulakan pemboleh ubah dengan nilai rentetan
pulangan_str='Belajar pengaturcaraan bash dengan LinuxHint'
}

#Menyatakan fungsi untuk membaca nilai argumen
fungsihitung_area()

#Baca nilai argumen yang dilalui
tempatan jejari=$ 1
kawasan= $(membuang $ jejari*$ jejari*3.14

#Panggil fungsi untuk mencetak mesej ringkas
cetak_mesej

#Call fungsi yang akan memberikan nilai rentetan dalam pemboleh ubah
ret_strdata

#Cetak nilai pemboleh ubah
membuang $ pulangan_str

#Baca nilai jejari
membuang 'Masukkan nilai jejari'
membacabekerja

#Panggil fungsi dengan nilai jejari
hitung_area$ rad

Pengeluaran:

Jalankan skrip.

$bashfunc.sh

Output berikut akan muncul setelah menjalankan skrip. Dua baris pertama akan dicetak dengan memanggil fungsi, cetak_mesej () dan ret_strdata () . Baris terakhir akan dicetak dengan memanggil fungsi, hitung_area () dengan nilai radius input yang diambil.

Sekiranya anda ingin mengetahui tentang mengembalikan rentetan dari fungsi bash maka anda boleh tutoria ini yang.

Pergi ke Atas

Memanggil program dalam skrip

Anda dapat menggunakan banyak jenis perintah untuk memanggil program lain dalam skrip bash, seperti sumber, bash, eval, exec Andaikan tiga fail bash, tambah.sh , tolak.sh, darab.sh dan pembahagian.sh dibuat untuk melakukan penambahan, pengurangan, pendaraban, dan pembahagian. Di sini, tolak.sh dan pembahagian.sh baca hujah baris perintah. Skrip keempat-empat fail ini diberikan di bawah.

tambah.sh

#! / bin / bash
ke=60
b=40
((hasil=$ a+$ b))
membuang 'Penambahan$ a+$ b=hasil $'

subract.sh

#! / bin / bash
ke=$ 1
b=$ 2
((hasil=$ a-$ b))
membuang 'Pengurangan dari$ a-$ b=hasil $'

darab.sh

#! / bin / bash
((hasil=$ 1*$ 2))
membuang 'Pendaraban $ 1 dan $ 2 adalahhasil $'

divide.sh

#! / bin / bash
ke=$ 1
b=2
((hasil=$ a/$ b))
membuang 'Pembahagian$ aoleh$ badalahhasil $'

Buat fail bash bernama, callpro.sh dengan skrip berikut untuk memanggil fail bash yang disebutkan menggunakan perintah sumber, bash, eval dan exec. Anda mesti menetapkan kebenaran pelaksanaan untuk empat fail di atas sebelum menjalankan skrip berikut. Perintah `source` digunakan untuk memanggil tambah.sh fail. Perintah `bash` digunakan untuk melaksanakan fail subtract.sh. Perintah `eval` digunakan untuk melaksanakan fail multiply.sh. Dua nilai input dihantar sebagai argumen baris perintah untuk perintah `eval`. Perintah terakhir adalah perintah exec yang berfungsi dengan jalan mutlak sahaja. Untuk ini, nama jalan penuh fail divide.sh diberikan dalam skrip.

callpro.sh

#! / bin / bash
skrip1='tambah.sh'
skrip2='tolak.sh'
skrip3='darab.sh'
skrip4='/home/fahmida/code/divide.sh'

sumber '$ skrip1'

bash $ skrip2 lima puluh dua puluh

membuang 'Masukkan nilai a'
membacake
membuang 'Masukkan nilai b'
membacab
menipu bash $ skrip3 $ a $ b
exec $ skrip4 30

Pengeluaran:

Jalankan skrip.

$bashcallpro.sh

Output berikut akan muncul setelah menjalankan skrip.

Pergi ke Atas

Membuat Menu

Terdapat perintah berguna dalam bash untuk membuat menu sederhana yang dipanggil `pilih` arahan. Berbagai jenis menu boleh dibuat dengan menggunakan arahan ini. Senarai data tertentu digunakan untuk membuat menu dengan perintah ini. Buat fail bash dengan kod berikut untuk melihat penggunaan `pilih` arahan untuk membuat menu. Dalam contoh ini, senarai lima item akan dicetak sebagai menu dan meminta pengguna memilih bahasa dari senarai tersebut. Nilai yang dipilih akan disimpan dalam pemboleh ubah, bahasa $ yang dicetak kemudian dengan bergabung dengan rentetan lain. Skrip akan terus meminta untuk memilih bahasa sehingga pengguna menekan 6 untuk menamatkan dari skrip.

menu.sh

#! / bin / bash

#Cetak mesej untuk pengguna
membuang 'Pilih bahasa kegemaran anda'

# Tentukan senarai item menu
pilihbahasadalamC# Java PHP Python Bash Exit
buat
#Cetak nilai yang dipilih
sekiranya [[ bahasa $=='Keluar' ]]
kemudian
jalan keluar 0
yang lain
membuang 'Bahasa yang dipilih adalahbahasa $'
menjadi
selesai

Pengeluaran:

Jalankan skrip.

$bashmenu.sh

Mengikut output berikut, pengguna menekan 3 untuk pertama kalinya yang mencetak PHP dan menekan 6 untuk kali kedua yang ditamatkan dari skrip.

Sekiranya anda ingin mengetahui lebih lanjut mengenai pembuatan menu bash dengan `select` maka anda boleh mengunjungi tutorial ini.

Pergi ke Atas

Pemprosesan Baris Perintah

Kadang-kadang kita perlu memberikan nilai input semasa menjalankan skrip dari baris perintah. Tugas ini dapat dilakukan dengan dua cara secara bash. Salah satu cara adalah dengan menggunakan pemboleh ubah argumen dan cara lain adalah dengan menggunakan fungsi getopts. Membaca data input baris perintah dari terminal dengan menggunakan pemboleh ubah argumen ditunjukkan dalam bahagian ini.

Buat fail bash dengan skrip berikut untuk melihat penggunaan nilai argumen baris perintah membaca. Skrip ini akan membaca tiga argumen baris perintah yang akan disimpan dalam pemboleh ubah, $ operand1, $ operand2 dan $ operator. Untuk melaksanakan skrip dengan betul, nilai argumen pertama dan ketiga mestilah nombor dan nilai argumen kedua mestilah salah satu daripada empat operator aritmetik (‘+’, ‘-’, ‘/’, ‘x’). sekiranya pernyataan akan memeriksa nilai $ operator dan melakukan operasi berdasarkan operator dan mencetak nilainya.

cl1.sh

#! / bin / bash

#Cetak pemboleh ubah argumen
membuang 'Nilai hujah adalah: $ 1 $ 2 $ 3'

# Simpan nilai argumen
operan1=$ 1
operan2=$ 3
pengendali=$ 2

#Periksa nilai argumen perintah ke-2 untuk melakukan operasi aritmetik
sekiranya [[ $ pengendali=='+' ]]
kemudian
((hasil=$ operan1+$ operan2))
elif [[ $ pengendali=='-' ]]
kemudian
((hasil=$ operan1-$ operan2))
elif [[ $ pengendali=='x' ]]
kemudian
((hasil=$ operan1*$ operan2))
elif [[ $ pengendali=='/' ]]
kemudian

((hasil=$ operan1/$ operan2))
menjadi

# mencetak hasilnya
membuang -Dan 'Hasilnya ialah =hasil $'

Pengeluaran:

Jalankan skrip.

$bashcl1.sh

Skrip dilaksanakan selama empat kali untuk empat jenis operator aritmetik. Output berikut akan muncul untuk nilai argumen, 6 + 3, 6 - 3, 6 x 3 dan 6/3 .

Nilai argumen dapat dilalui dengan pasangan nilai-nilai dalam bash. Buat fail bash dengan skrip berikut untuk menunjukkan cara membaca nilai argumen dengan namanya. Skrip akan membaca dua pemboleh ubah argumen. Nilai argumen dengan nama dicetak pada pernyataan pertama skrip. Seterusnya, a untuk gelung digunakan untuk mengulangi array yang mengandungi nilai argumen baris perintah. Setiap elemen array dipisahkan menjadi pasangan nilai-kunci dengan menggunakan perintah `cut`. Seterusnya, pernyataan kes digunakan untuk mencetak mesej tertentu berdasarkan nilai kunci.

cl2.sh

#! /saya/bash

#Cetak pemboleh ubah argumen
membuang 'Nilai hujah adalah: $ 1 $ 2'

# Baca setiap argumen secara berasingan menggunakan loop
untukmarahdalam '[dilindungi e-mel]'
buat

#Pisahkan nama dan nilai argumen
kunci= $(membuang $ arg | potong -f1 -d=)
nilai= $(membuang $ arg | potong -f2 -d=)

#Cetak mesej berdasarkan nama argumen
kes kunci $ dalam
nama) membuang 'Nama pelajar =nilai $';;
tanda) membuang 'Tanda yang diperoleh =nilai $' ;;
*)
esac
selesai

Pengeluaran:

Jalankan skrip dengan argumen baris perintah berikut.

$bashcl2.shnama= Abir Hossaintanda=90

Dua argumen baris perintah disediakan dalam perintah di atas. Ini adalah nama = Abir Hossain dan tanda = 90 . nama dan tanda dipisahkan oleh skrip dan dua nilai dicetak setelah memformat output.

Memproses hujah baris perintah dengan menggunakan getopts fungsi tidak dibincangkan dalam tutorial ini. Sekiranya anda ingin mengetahui mengenai pemprosesan baris perintah dengan menggunakan getopts fungsi maka anda boleh melawat tutorial ini .

Pergi ke Atas

Aritmetik

Melakukan operasi aritmetik adalah syarat biasa bagi setiap bahasa pengaturcaraan. Bash melakukan operasi aritmetik dengan cara yang berbeza daripada bahasa pengaturcaraan standard yang lain. Terdapat pelbagai cara untuk melakukan operasi aritmetik dalam bash. Salah satu cara mudah melakukan operasi aritmetik ditunjukkan dalam bahagian ini. Buat fail bash dengan skrip berikut. Empat jenis operasi aritmetik ditunjukkan dalam skrip ini. Operasi penjumlahan dan pembahagian yang sederhana ditunjukkan dengan menggunakan tanda kurung pertama pada awal skrip. Seterusnya, operasi pra-kenaikan ditunjukkan. Akhirnya, cara menggunakan operator singkatan ditunjukkan di bahagian terakhir skrip.

arith.sh

#! / bin / bash
# Hitung jumlahnya
hasil= $((lima puluh+25))
# Nilai penjumlahan cetak
membuang 'jumlah =hasil $'

# Hitung pembahagian
hasil= $((lima puluh/25))
# Nilai bahagian cetak
membuang 'pembahagian =hasil $'

# Berikan nilai ke N
N=10
# Melakukan kenaikan awal
((--N))
# Cetak nilai N
membuang 'Nilai selepas penurunan =$ N'

# Menggunakan operator pendek
((N + =10 ))
# Cetak nilai N
membuang Nilai setelah menambah 10 =$ N'

Pengeluaran:

Jalankan skrip.

$basharith.sh

Output berikut akan muncul setelah menjalankan skrip.

Semua operasi aritmetik dilakukan dengan menggunakan tanda kurung ganda dalam skrip di atas. Tetapi anda boleh menggunakan ' biarkan ',' expr 'Dan' bc 'Perintah untuk melakukan operasi aritmetik dalam bash. Sekiranya anda ingin mengetahui lebih lanjut mengenai arahan ini untuk melakukan operasi aritmetik bash, maka anda boleh mengunjungi tutorial ini.

Pergi ke Atas

Manipulasi Rentetan

Banyak jenis tugas dapat dilakukan dengan data rentetan dalam bash. Sebilangannya merangkumi rentetan, membandingkan rentetan, membelah rentetan, Mengganti casing rentetan, dll. Tidak ada fungsi rentetan bawaan seperti bahasa standard lain dalam bash untuk melakukan operasi rentetan. Beberapa manipulasi rentetan biasa dibincangkan dalam bahagian tutorial ini.

Rentetan Bersambung

Menambah dua atau lebih rentetan bersama disebut gabungan tali. Tali itu disatukan dalam bash dengan meletakkan satu demi satu. Buat fail bash dengan skrip berikut untuk menunjukkan penggunaan gabungan tali. Dua pemboleh ubah rentetan diinisialisasi dan dicetak setelah menggabungkan pemboleh ubah. Di sini, kandungan $ tali1 dan $ tali2 akan digabungkan dan dicetak.

concat.sh

#! / bin / bash

# Memulakan pemboleh ubah rentetan pertama
tali1='Saya suka '
# Memulakan pemboleh ubah rentetan kedua
tali2='Pengaturcaraan Bash'
#Cetak selepas menggabungkan kedua-dua tali
membuang '$ tali1$ tali2'

Pengeluaran:

Jalankan skrip.

$bashconcat.sh

Output berikut akan muncul setelah menjalankan skrip.

Anda boleh mengetahui lebih lanjut mengenai penggabungan rentetan dari tutorial ini.

Pergi ke Atas

Membandingkan Rentetan

Bash menggunakan pelbagai jenis operator untuk membandingkan data rentetan. Buat file bash dengan skrip berikut untuk menunjukkan cara membandingkan dua data rentetan. Nilai rentetan diambil sebagai input dalam skrip yang dibandingkan dengan rentetan lain. Sekiranya nilainya sepadan dengan mesej, Anda suka Python akan dicetak sebaliknya Anda suka PERL akan dicetak.

membandingkan.sh

#! / bin / bash
membuangMasukkan sebarang nilai rentetan
membacateks

#Periksa data input setara dengan Python
sekiranya [ $ teks=='Python' ];kemudian
membuang 'Anda suka Python.'
yang lain
membuang 'Anda suka PERL'
menjadi

Pengeluaran:

Jalankan skrip.

$bashmembandingkan.sh

Output berikut akan muncul setelah menjalankan skrip di mana nilai inputnya adalah 'PERL'.

Anda boleh mengetahui lebih lanjut mengenai perbandingan rentetan dari tutorial ini .

Rentetan Berpisah

Bash tidak mempunyai fungsi split terbina dalam untuk membahagikan data rentetan. Data rentetan dapat dibahagikan dengan pelbagai cara dalam bash berdasarkan pelbagai jenis pembatas. Buat file bash dengan skrip berikut untuk menunjukkan bagaimana data rentetan dapat dibagi menjadi bash. Nilai rentetan diambil sebagai input. Skrip ini akan membahagikan nilai $ teks berdasarkan ruang. Di sini, IFS pemboleh ubah digunakan untuk menetapkan pembatas. `baca` arahan digunakan di sini untuk membahagikan nilai teks dan menyimpan nilai menjadi larik. untuk gelung digunakan untuk melancarkan larik dan mencetak nilai setiap elemen.

berpecah.sh

#! / bin / bash
#Masukkan nilai rentetan
membuangMasukkan nilai rentetan
membacateks
# Tetapkan pembatas
IFS=''
#Berikan nilai $ teks ke dalam array berdasarkan pembatas ruang
membaca -kepadaarr<<< '$ teks'
# Cetak setiap nilai array
untuknilaidalam '$ {arr [@]}';
buat
printf 'nilai $ n'
selesai

Pengeluaran:

Jalankan skrip.

$bashberpecah.sh

Output berikut akan muncul setelah mengambil input, Belajar pengaturcaraan Bash . Nilai input ini adalah teks tiga perkataan. Jadi, tali itu terbahagi kepada tiga bahagian.

Anda boleh mengetahui lebih lanjut mengenai perbandingan rentetan dari tutorial ini .

Menukar Kes tali

Sebilangan besar bahasa skrip mempunyai fungsi bawaan untuk mengubah kes data rentetan. Tetapi kes data rentetan dapat diubah secara bash dengan menggunakan `tr` perintah atau dengan menggunakan ‘: Atas’ dan ‘: Lebih rendah’ kata kunci. Buat file bash dengan skrip berikut untuk mengetahui cara-cara menukar case dalam bash. Di sini, data rentetan pertama ditukar menjadi huruf besar dengan menggunakan ‘^^’ simbol dan rentetan kedua ditukar menjadi huruf kecil dengan menggunakan `tr` arahan. `tr` arahan akan mencari semua huruf besar dalam rentetan dan menukar watak menjadi huruf kecil.

kes.sh

#! / bin / bash

# Memulakan data rentetan pertama
teks1='[dilindungi e-mel]'

#Cetak nilai $ text1 dengan menukar semua watak menjadi huruf besar
membuang $ {e-mel ^^}

# Memulakan data rentetan kedua
teks2= 'Asas Pengaturcaraan Bash'

#Cetak nilai $ text2 dengan menukar semua huruf besar menjadi huruf kecil
membuang $ teks2 | NS [: atas:] [: lebih rendah:]

Pengeluaran:

Jalankan skrip.

$bashkes.sh

Output berikut akan muncul setelah menjalankan skrip.

Anda boleh mengetahui lebih lanjut mengenai perbandingan rentetan dari tutorial ini .

Pergi ke Atas

Membaca data rentetan melalui gelung

Data rentetan berfungsi sebagai susunan watak untuk bahasa pengaturcaraan apa pun. Bagaimana ‘ untuk Gelung boleh digunakan untuk membaca data rentetan dalam bash ditunjukkan di bahagian ini. Buat fail asas dengan skrip berikut untuk membaca setiap bahagian nilai rentetan dengan menggunakan loop.

readstr.sh

#! / tong / bas
# Baca setiap perkataan teks dengan menggunakan loop
untuknilaidalamPengaturcaraan BashuntukPemula
buat
membuang nilai $
selesai

Pengeluaran:

Jalankan skrip.

$bashreadstr.sh

Output berikut akan muncul setelah menjalankan skrip.

Anda boleh mengetahui lebih banyak mengenai data rentetan iterasi dengan menggunakan gelung dari tutorial ini .

Pergi ke Atas

Mengembalikan kod pengembalian dari skrip dan menangkap skrip lain

Satu skrip bash dapat menangkap kod pengembalian dari skrip lain dengan memanggil skrip dan menggunakan '$?' untuk membaca nilai pulangan. Katakan, fail bash bernama pertama.sh mengembalikan kod selepas pelaksanaan. Buat fail bash lain yang bernama kedua.sh dan tambahkan skrip berikut untuk menangkap nilai kembali dan melakukan beberapa tugas lain. Kod kedua-dua fail diberikan di bawah. pertama.sh fail akan dipanggil dari kedua.sh fail pada awal skrip. pertama.sh akan mengembalikan kod keluar berdasarkan nilai input. second.sh akan menangkap kod dengan '$?' dan bandingkan dengan 1. Sekiranya kedua-dua nilai itu sama maka ia akan dicetak, Nombor input lebih besar daripada 100 , jika tidak, ia akan dicetak, Nombor input kurang daripada atau sama dengan 100 .

pertama.sh

#! / bin / bash

membuang 'Masukkan nilai berangka'
membacan

# Periksa nilai input kurang dari atau sama dengan 100 atau tidak
sekiranya [[ $ n -tempat 100 ]]
kemudian
jalan keluar 0
yang lain
jalan keluar 1
menjadi

kedua.sh

#! / bin / bash

#Laksanakan fail, first.sh
bash 'first.sh'

#Periksa kod pengembalian sama dengan 1 atau tidak
sekiranya [ $? -eq 1 ]
kemudian
membuang 'Nombor input lebih besar daripada 100'
yang lain
membuang 'Nombor input kurang dari atau sama dengan 100'
menjadi

Pengeluaran:

Jalankan skrip.

$bashkedua.sh

Output berikut akan muncul apabila skrip dijalankan sebanyak 55 dan 110 sebanyak dua kali.

Pergi ke Atas

Membaca dan menulis ke fail

Membaca dan menulis fail adalah syarat biasa pengaturcaraan bash. Bash tidak mempunyai fungsi terbina dalam seperti bahasa lain untuk membaca atau menulis fail. Terdapat banyak cara untuk membaca fail dalam bash. Cara yang paling biasa untuk membaca atau menulis fail dalam bash adalah menggunakan `kucing` arahan. Tetapi perintah ini digunakan untuk membaca keseluruhan kandungan fail pada satu masa. Anda juga boleh membaca baris demi baris fail dengan menggunakan gelung dan `baca` arahan. Menggunakan pengendali ubah hala, '>' , anda boleh menulis data ke dalam fail dalam bash. Sekiranya anda ingin menambahkan data ke dalam fail apa pun maka anda harus menggunakannya '>>' pengendali. Operasi fail membaca dan menulis ditunjukkan di bahagian seterusnya dari bahagian ini.

Membaca fail dalam bash

Buat file bash dengan skrip berikut untuk membaca fail yang ada bernama ‘ perkakasan.txt '. Kandungan fail ini diberikan di bawah. Dalam skrip, keseluruhan kandungan fail dibaca oleh `kucing` perintah pertama dan seterusnya, sementara gelung digunakan untuk membaca baris demi baris fail.

perkakasan.txt

Pantau
Papan Kekunci
Tetikus
Pengimbas
Mesin pencetak

readfile.sh

#! / bin / bash

membuang 'Membaca fail menggunakan arahan kucing'

# Baca isi fail menggunakan arahan `cat`
kandungan='kucingperkakasan.txt'
membuang kandungan $

membuang 'Membaca baris demi baris menggunakan gelung'

# Tetapkan nama fail
nama fail='perkakasan.txt'

# Setiap baris fail akan dibaca oleh setiap lelaran gelung
sementara membacagarisan;
buat
# cetak garis
membuang $ baris
selesai<$ nama fail

Pengeluaran:

Jalankan arahan berikut.

$kucingperkakasan.txt
$bashreadfile.sh

Di sini, arahan pertama akan mencetak kandungan fail, perkakasan.txt tanpa menjalankan skrip bash dan arahan kedua akan menjalankan skrip readfile.sh dan mencetak kandungan fail selama dua kali dengan menggunakan `kucing` arahan dan `baca` arahan dengan loop sementara. Anda boleh melawat ini tutorial untuk mengetahui lebih lanjut mengenai membaca fail demi baris.

Menulis fail dalam bash

Buat file bash dengan skrip berikut untuk menulis konten baru dalam file baru dan tambahkan data dalam file tersebut.

writefile.sh

#! / bin / bash

membuang 'Masukkan beberapa teks'
#Baca data rentetan
membacastr1
#Tambah data input ke dalam fail untuk pertama kalinya
membuang $ str1 >ujian.txt

membuang 'Masukkan beberapa teks lain'
#Baca data rentetan yang lain
membacastr2
#Tambah data input di akhir fail
membuang $ str2 >>ujian.txt

#Tunjukkan kandungan fail sepenuhnya
membuang 'kucingujian.txt'

Pengeluaran:

Jalankan skrip.

$bashwritefile.sh

Output berikut akan muncul setelah menjalankan skrip.

Pergi ke Atas

Paip

Pipa digunakan untuk mengarahkan semula output perintah ke input perintah lain. Ini dapat digunakan di antara berbagai jenis perintah bash untuk menghasilkan output tertentu. Input standard dihubungkan dengan output standard di Linux melalui paip. Anda perlu menetapkan perintah secara berurutan dengan simbol paip (|) untuk mendapatkan output yang diinginkan. Dua atau lebih arahan dapat dilaksanakan bersama dalam satu perintah dengan menggunakan pipa. Anda harus melaksanakan beberapa perintah dalam beberapa baris tanpa paip untuk melakukan tugas yang sama. Jadi, menggunakan paip sangat bermanfaat untuk melakukan banyak jenis tugas dalam bentuk yang pendek.

sintaks:

perintah1|perintah2|...

Di sini, output perintah1 akan dilalui sebagai input perintah2.

Jenis tugas yang sama dilakukan dengan paip dan tanpa paip di bahagian seterusnya dari bahagian ini. Katakan fail teks bernama marks.txt diberikan dengan data berikut.

marks.txt

Asraf CSE-409 79

Kabir CSE-304 95

Keya CSE-101 67

Asraf CSE-304 88

Keya CSE-409 90

Asraf CSE-101 92

Anda harus menyusun data fail dan mengetahui dan mencetak semua catatan nama pelajar ‘K Yeah ' . Anda boleh melakukan tugas ini dengan menjalankan beberapa perintah tanpa menggunakan paip yang ditunjukkan di bahagian seterusnya. Perintah berikut perlu dijalankan untuk mendapatkan output yang diinginkan. Perintah pertama akan menyusun fail. Perintah kedua akan mencari entri ‘K Yeah ' menggunakan ` cengkaman perintah dan simpan output di temp.txt fail. Perintah ketiga akan mengira jumlah garis a temp.txt fail dengan menggunakan `wc ' arahan.

$mengurutmarks.txt
$cengkaman 'Keya'marks.txt>temp.txt
$wc -tempattemp.txt

Pengeluaran:

Dua entri pelajar, ‘Keya’ ada di dalam fail. Jadi setelah menjalankan perintah di atas, output berikut akan muncul.

Anda boleh menggabungkan tiga perintah di atas dengan mudah dan mendapatkan output yang sama dengan menjalankan satu perintah dengan paip yang ditunjukkan dalam perintah berikut. Tidak diperlukan fail sementara di sini untuk mendapatkan output. Di sini, output dari ` mengurut perintah `akan dihantar sebagai input dari` cengkaman perintah dan output dari ` cengkaman Perintah `akan dihantar sebagai input untuk `wc ' arahan.

$mengurutmarks.txt| cengkaman 'Keya' | wc -tempat

Pengeluaran:

Setelah menjalankan perintah di atas, anda akan mendapat output berikut seperti output arahan sebelumnya. Output arahan akan menjadi 2.

Pergi ke Atas

Kesimpulan:

Topik bahasa skrip bash yang paling berguna dan perlu dicuba dalam tutorial ini. Harap, pembaca akan mendapat manfaat setelah membaca tutorial ini dan dapat menulis skrip bash dengan lebih berkesan.