Output arahan BASH ke pemboleh ubah

Bash Command Output Variable



Jenis perintah bash yang berlainan perlu dijalankan dari terminal berdasarkan kehendak pengguna. Apabila pengguna menjalankan sebarang arahan dari terminal maka ia menunjukkan keluaran jika tidak ada kesalahan sebaliknya menunjukkan mesej kesalahan. Kadang kala, output arahan perlu disimpan dalam pemboleh ubah untuk kegunaan masa depan. Ciri penggantian perintah shell bash dapat digunakan untuk tujuan ini. Bagaimana anda boleh menyimpan pelbagai jenis perintah shell ke dalam variabel menggunakan ciri ini ditunjukkan dalam tutorial ini.

pemboleh ubah= $(arahan)
pemboleh ubah= $(arahan [pilihan…]hujah1 hujah2…)
pemboleh ubah= $(/jalan/ke/arahan)

ATAU







pemboleh ubah='arahan'
pemboleh ubah='arahan [pilihan…]hujah1 hujah2 ...'
pemboleh ubah=/ /jalan/ke/arahan'

*** Catatan: Jangan gunakan ruang sebelum dan sesudah tanda sama ketika menggunakan perintah di atas.



Output perintah tunggal ke pemboleh ubah

Perintah Bash boleh digunakan tanpa pilihan dan argumen untuk perintah tersebut di mana bahagian-bahagian ini adalah pilihan. Dua contoh berikut menunjukkan penggunaan penggantian perintah mudah.



Contoh # 1:

bash ` tarikh` arahan digunakan untuk menunjukkan tarikh dan masa semasa. Skrip berikut akan menyimpan output ` tarikh` perintah menjadi $ tarikh semasa pemboleh ubah dengan menggunakan penggantian arahan.





$tarikh semasa= $(Tarikh)
$membuang 'Hari ini adalah$ current_date'

Pengeluaran:



Contoh # 2:

`pwd` arahan menunjukkan jalan dari direktori kerja semasa. Skrip berikut menyimpan output dari `pwd` arahan ke pemboleh ubah, $ semasa_dir dan nilai pemboleh ubah ini dicetak dengan menggunakan `gema ' arahan.

$semasa_dir='pwd'
$membuang 'Direktori semasa adalah:$ semasa_dir'

Pengeluaran:

Perintah dengan pilihan dan hujah

Pilihan dan argumen adalah wajib untuk beberapa perintah bash. Contoh berikut menunjukkan bagaimana anda dapat menyimpan output perintah dengan pilihan dan argumen ke dalam pemboleh ubah.

Contoh # 3:

Bash ` wc perintah digunakan untuk mengira jumlah baris, perkataan, dan watak mana-mana fail. Perintah ini menggunakan -c, -w dan -l sebagai pilihan dan nama fail sebagai argumen untuk menghasilkan output. Buat fail teks bernama buah-buahan.txt dengan data berikut untuk menguji skrip seterusnya.
buah-buahan.txt

buah-buahan.txt
Mangga
Jingga
Pisang
Anggur
Jambu batu
epal

Jalankan arahan berikut untuk mengira dan menyimpan jumlah perkataan di buah-buahan.txt failkan ke pemboleh ubah, $ kiraan_kata dan mencetak nilainya dengan menggunakan ` gema` arahan.

$mengira_kata='wc -dalambuah-buahan.txt'
$membuang 'Jumlah perkataan dalam buah-buahan.txt ialah$ kiraan_kata'

Pengeluaran:

Contoh # 4:

`potong` adalah perintah bash lain yang menggunakan pilihan dan argumen untuk menghasilkan output. Buat fail teks bernama hari minggu.txt dengan nama tujuh minggu untuk menjalankan skrip seterusnya.

hari minggu.txt

Isnin
Selasa
Hari Rabu
Khamis
Jumaat
Sabtu
Ahad

Buat fail bash bernama cmdsub1.sh dengan skrip berikut. Dalam skrip ini, sementara gelung digunakan untuk membaca isi kandungan hari minggu.txt failkan baris demi baris dan baca tiga watak pertama setiap baris dengan menggunakan ` potong` arahan. Selepas memotong, nilai rentetan disimpan dalam pemboleh ubah $ hari . Seterusnya, Sekiranya pernyataan itu digunakan untuk memeriksa nilai $ hari adalah ‘ Matahari' atau tidak. Keluaran akan dicetak ‘ Ahad adalah hari cuti 'Apabila keadaan itu benar, ia akan mencetak nilai $ hari .

cmdsub1.sh

#! / bin / bash
nama fail='hari minggu.txt'
sementara membacagarisan;buat
hari='membuang $ baris | potong -c 1-3'
sekiranya [ $ hari=='Matahari' ]
kemudian
membuang 'Ahad adalah hari cuti'
yang lain
membuang $ hari
menjadi
selesai<$ nama fail

Jalankan skrip.

$kucinghari minggu.txt
$bashcmdsub1.sh

Pengeluaran:

Menggunakan penggantian arahan dalam gelung

Anda boleh menyimpan output penggantian perintah ke mana-mana pemboleh ubah gelung yang ditunjukkan dalam contoh seterusnya.

Contoh # 5:

Buat fail bernama cmdsub2.sh dengan kod berikut. Di sini, ls -d * / perintah `digunakan untuk mengambil semua senarai direktori dari direktori semasa. Untuk gelung digunakan di sini untuk membaca setiap direktori dari output dan menyimpannya dalam pemboleh ubah $ dirname yang dicetak kemudian.

cmdsub2.sh

#! / bin / bash
untuk nama panggilan dalam$(ls -d * /)
buat
membuang '$ dirname'
selesai

Jalankan skrip.

$bashcmdsub2.sh

Pengeluaran:

Menggunakan perintah bersarang

Cara anda menggunakan pelbagai arahan menggunakan paip (|) ditunjukkan dalam contoh sebelumnya. Tetapi anda boleh menggunakan perintah bersarang dalam penggantian perintah di mana output perintah pertama bergantung pada output perintah kedua dan ia berfungsi bertentangan dengan perintah paip (|).

Sintaks arahan bersarang:

di mana='arahan1 'arahan'

Contoh # 6:

Dua arahan, ` membuang dan who `digunakan dalam contoh ini sebagai perintah bersarang. Di sini, who `perintah akan dilaksanakan terlebih dahulu yang mencetak maklumat pengguna dari pengguna yang sedang masuk. Keluaran dari ` who perintah `akan dilaksanakan oleh` membuang perintah dan output ` membuang `akan menyimpan ke dalam pemboleh ubah $ var . Di sini, output ` membuang perintah `` bergantung pada output '' who perintah.

$di mana='membuang'who'
$membuang $ var

Pengeluaran:

Menggunakan jalan Perintah

Sekiranya anda mengetahui jalan perintah maka anda boleh menjalankan perintah dengan menentukan jalan perintah ketika menggunakan penggantian perintah. Contoh berikut menunjukkan penggunaan jalur arahan.

Contoh # 7:

`whoami` arahan menunjukkan nama pengguna pengguna yang sedang dilog masuk. Secara lalai, perintah ini disimpan di / usr / saya / folder. Jalankan skrip berikut untuk menjalankan ` whoami` perintah menggunakan jalan dan simpan dalam pemboleh ubah, $ output, dan mencetak nilai keluaran $ .

$pengeluaran= $(/usr/saya/siapakah saya)
$membuang keluaran $

Pengeluaran:

Menggunakan argumen Line Command

Anda boleh menggunakan argumen baris perintah dengan perintah sebagai argumen dalam penggantian perintah.

Contoh # 8:

Buat fail bash bernama cmdsub3.sh dengan skrip berikut. ' nama asas Perintah `digunakan di sini untuk mengambil nama fail dari 2ndargumen baris perintah dan disimpan dalam pemboleh ubah, $ nama fail . Kita tahu 1stargumen baris perintah adalah nama skrip pelaksanaan yang dilambangkan dengan $ 0.

#! / bin / bash
nama fail='nama asas $ 1'
membuang 'Nama fail adalah$ nama fail. '

Jalankan skrip dengan nilai argumen berikut.

$bashDesktop cmdsub3.sh/temp/hello.txt

Di sini, nama asas jalan, Desktop / temp / hello.txt adalah ‘ hello.txt '. Jadi, nilai $ nama fail akan jadi hello.txt .

Pengeluaran:

Kesimpulan:

Pelbagai penggunaan penggantian arahan ditunjukkan dalam tutorial ini. Sekiranya anda perlu bekerja dengan banyak perintah atau perintah bergantung dan menyimpan hasilnya sementara untuk melakukan beberapa tugas lain kemudian, anda boleh menggunakan fitur ini dalam skrip anda untuk mendapatkan hasilnya.

Maklumat lanjut dalam video: