Output perintah BASH ke variabel

Bash Command Output Variable

Berbagai jenis perintah bash perlu dijalankan dari terminal berdasarkan kebutuhan pengguna. Ketika pengguna menjalankan perintah apa pun dari terminal maka itu menunjukkan output jika tidak ada kesalahan jika tidak, itu menunjukkan pesan kesalahan. Terkadang, output dari perintah perlu disimpan dalam variabel untuk digunakan di masa mendatang. Fitur substitusi perintah shell dari bash dapat digunakan untuk tujuan ini. Bagaimana Anda dapat menyimpan berbagai jenis perintah shell ke dalam variabel menggunakan fitur ini ditunjukkan dalam tutorial ini.

variabel= $(memerintah)
variabel= $(memerintah [pilihan…]argumen1 argumen2 ...)
variabel= $(/jalur/ke/memerintah)

ATAU



variabel=``memerintah``
variabel=``memerintah [pilihan…]argumen1 argumen2 ...``
variabel=`/jalur/ke/memerintah``

***Catatan: Jangan gunakan spasi sebelum dan sesudah tanda sama dengan saat menggunakan perintah di atas.



Output perintah tunggal ke variabel

Perintah Bash dapat digunakan tanpa opsi dan argumen apa pun untuk perintah-perintah di mana bagian-bagian ini opsional. Dua contoh berikut menunjukkan penggunaan substitusi perintah sederhana.



Contoh 1:

bash ` tanggal` Perintah ini digunakan untuk menampilkan tanggal dan waktu saat ini. Script berikut akan menyimpan output dari ` tanggal` perintah ke $ tanggal sekarang variabel dengan menggunakan substitusi perintah.

$tanggal sekarang= $(tanggal)
$dibuang 'Hari ini adalah$saat_tanggal'

Keluaran:



Contoh #2:

`pwd` perintah menunjukkan jalur direktori kerja saat ini. Script berikut menyimpan output dari `pwd` perintah ke dalam variabel, $ arus_dir dan nilai variabel ini dicetak dengan menggunakan `bergema` memerintah.

$arus_dir=``pwd``
$dibuang 'Direktori saat ini adalah:$ arus_dir'

Keluaran:

Perintah dengan opsi dan argumen

Opsi dan argumen wajib untuk beberapa perintah bash. Contoh berikut menunjukkan bagaimana Anda dapat menyimpan output dari perintah dengan opsi dan argumen ke dalam variabel.

Contoh #3:

Bas ` toilet perintah digunakan untuk menghitung jumlah baris, kata, dan karakter dari file apa pun. Perintah ini menggunakan -c, -w dan -l sebagai opsi dan nama file sebagai argumen untuk menghasilkan output. Buat file teks bernama buah-buahan.txt dengan data berikut untuk menguji skrip berikutnya.
buah-buahan.txt

buah-buahan.txt
Mangga
jeruk
pisang
Anggur
Jambu biji
apel

Jalankan perintah berikut untuk menghitung dan menyimpan jumlah kata dalam buah-buahan.txt file ke dalam variabel, $count_words dan cetak nilainya dengan menggunakan ` gema` memerintah.

$count_words=``toilet -di dalambuah-buahan.txt``
$dibuang 'Total kata dalam buah.txt adalah$count_words'

Keluaran:

Contoh#4:

`potong` adalah perintah bash lain yang menggunakan opsi dan argumen untuk menghasilkan output. Buat file teks bernama hari kerja.txt dengan nama tujuh hari kerja untuk menjalankan skrip berikutnya.

hari kerja.txt

Senin
Selasa
Rabu
Kamis
Jumat
Sabtu
Minggu

Buat file bash bernama cmdsub1.sh dengan skrip berikut. Dalam skrip ini, ketika loop digunakan untuk membaca isi dari hari kerja.txt file baris demi baris dan baca tiga karakter pertama setiap baris dengan menggunakan ` potong` memerintah. Setelah dipotong, nilai string disimpan dalam variabel $hari . Selanjutnya, Jika pernyataan digunakan untuk memeriksa nilai $hari adalah ' Matahari' atau tidak. Output akan mencetak ' Minggu adalah hari libur ' ketika jika kondisinya benar jika tidak maka akan mencetak nilai $hari .

cmdsub1.sh

#!/bin/bash
nama file='hari kerja.txt'
ketika Bacagaris;melakukan
hari=``dibuang $baris | memotong -C 1-3``
jika [ $hari=='Matahari' ]
kemudian
dibuang 'Minggu adalah hari libur'
lain
dibuang $hari
menjadi
selesai<$nama file

Jalankan skrip.

$kucinghari kerja.txt
$pestacmdsub1.sh

Keluaran:

Menggunakan substitusi perintah dalam loop

Anda dapat menyimpan output dari substitusi perintah ke dalam variabel loop apa pun yang ditunjukkan pada contoh berikutnya.

Contoh#5:

Buat file bernama cmdsub2.sh dengan kode berikut. Di sini, ` ls -d * / Perintah ` digunakan untuk mengambil semua daftar direktori dari direktori saat ini. Untuk loop digunakan di sini untuk membaca setiap direktori dari output dan menyimpannya dalam variabel $dirname yang dicetak kemudian.

cmdsub2.sh

#!/bin/bash
untuk nama dirname di dalam$(ls -D * /)
melakukan
dibuang '$dirname'
selesai

Jalankan skrip.

$pestacmdsub2.sh

Keluaran:

Menggunakan perintah bersarang

Bagaimana Anda dapat menggunakan beberapa perintah menggunakan pipe(|) ditunjukkan pada contoh sebelumnya. Tetapi Anda dapat menggunakan perintah bersarang dalam substitusi perintah di mana output dari perintah pertama bergantung pada output dari perintah kedua dan bekerja berlawanan dengan perintah pipe(|).

Sintaks perintah bersarang:

di mana=``perintah1 ``memerintah``

Contoh#6:

Dua perintah, ` dibuang ` dan ` siapa ` digunakan dalam contoh ini sebagai perintah bersarang. Di sini, ` siapa Perintah ` akan dijalankan terlebih dahulu yang mencetak informasi pengguna tentang pengguna yang saat ini masuk. Keluaran dari ` siapa ` perintah akan dieksekusi oleh ` dibuang ` perintah dan output dari ` dibuang `akan disimpan ke dalam variabel $ var . Di sini, output dari ` dibuang ` perintah tergantung pada output dari ` siapa ` perintah.

$di mana=``dibuang``siapa``
$dibuang $ var

Keluaran:

Menggunakan jalur Perintah

Jika Anda mengetahui jalur perintah maka Anda dapat menjalankan perintah dengan menentukan jalur perintah saat menggunakan substitusi perintah. Contoh berikut menunjukkan penggunaan jalur perintah.

Contoh#7:

`whoami` perintah menunjukkan nama pengguna dari pengguna yang sedang login. Secara default, perintah ini disimpan di / usr/ NS/ map. Jalankan skrip berikut untuk menjalankan ` whoami` perintah menggunakan jalur dan simpan dalam variabel, $keluaran, dan cetak nilai $keluaran .

$keluaran= $(/usr/NS/siapa saya)
$dibuang $keluaran

Keluaran:

Menggunakan argumen Baris Perintah

Anda dapat menggunakan argumen baris perintah dengan perintah sebagai argumen dalam substitusi perintah.

Contoh#8:

Buat file bash bernama cmdsub3.sh dengan skrip berikut. ` nama dasar Perintah ` digunakan di sini untuk mengambil nama file dari 2danargumen baris perintah dan disimpan dalam variabel, $nama file . Kita tahu 1NSargumen baris perintah adalah nama skrip yang dieksekusi yang dilambangkan dengan $0.

#!/bin/bash
nama file=``nama dasar $1``
dibuang 'Nama filenya adalah$nama file. '

Jalankan skrip dengan nilai argumen berikut.

$pestacmdsub3.sh Desktop/suhu/halo.txt

Di Sini, nama dasarnya dari jalan, Desktop/temp/hello.txt adalah ' halo.txt '. Jadi, nilai $nama file akan halo.txt .

Keluaran:

Kesimpulan:

Berbagai penggunaan substitusi perintah ditampilkan dalam tutorial ini. Jika Anda perlu bekerja dengan banyak perintah atau perintah yang bergantung dan menyimpan hasilnya sementara untuk melakukan beberapa tugas lain nanti, Anda dapat menggunakan fitur ini di skrip Anda untuk mendapatkan hasilnya.

Info lebih lanjut di video: