Pengantar
Dalam skrip bash, menetapkan output dari perintah ke variabel dapat dilakukan dengan menyimpan output dari perintah dan menggunakannya nanti.
Dalam panduan singkat ini, kita akan melihat bagaimana Anda dapat menyimpan output dari sebuah perintah sebagai variabel di Bash.
Dasar-dasar Untuk Mengatur Variabel
Menyimpan output dari perintah sebagai variabel dicapai melalui substitusi perintah. Substitusi perintah adalah pembungkus yang mengeksekusi perintah dalam a lingkungan subkulit, dan mengganti perintah yang dibungkus dengan output standar dari lingkungan tempat perintah dijalankan. Output ini kemudian dapat direferensikan nanti, jika terhubung ke variabel referensi!
Substitusi perintah dapat dicapai melalui backticks atau tanda dolar dengan tanda kurung:
`command`
$(command)
Ada perdebatan tentang apakah `perintah` (backtick) atau $(perintah) (tanda dolar dan tanda kurung) harus digunakan sebagai โpraktik terbaikโ. $(command)
bekerja dengan baik dalam bersarang, dan meningkatkan keterbacaan dalam beberapa kasus, tetapi Anda dapat menggunakan salah satu sintaks dalam contoh selanjutnya.
Yang sedang berkata - menetapkan output dari perintah ke variabel di Bash semudah:
VARIABLE=$(command)
echo "${VARIABLE}"
Running ${variable}
dikenal sebagai ekspansi parameter, dan digunakan untuk mengevaluasi dan mengambil nilai yang terkait dengan variabel referensi.
Sekarang mari kita lihat contoh sederhana penyiapan variabel untuk perintah untuk mengubah warna output:
#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"
ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"
echo "${GREEN}Paris"
Dalam cuplikan, kami telah menggunakan tput
perintah dan menetapkan nilai yang dikembalikan dari perintah tersebut untuk mencetak teks berwarna. Itu setaf
mengubah warna latar depan, dan 3 (hijau) dan 9 (oranye) adalah kode warna.
Sekarang kita akan beralih ke contoh lain yang berisi beberapa kondisi untuk mengatur variabel untuk perintah yang berbeda:
#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"
DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"
DATES=$(date)
echo -e "The script is being run on:n${DATES}n"
CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"
LOCATION=$(ls
-l *txt)
echo -e "Saved text file at: ${LOCATION}"
Dalam skrip di atas, whoami
perintah mengembalikan nama pengguna pengguna saat ini. Itu uname -a
mengembalikan informasi sistem, dan date
mengembalikan waktu dan tanggal saat ini.
Catatan: Kita dapat mengaitkan penetapan variabel dengan menambahkan beberapa perintah dalam satu panggilan bersarang. Itu CREATE
variabel berisi output dari touch
perintah, yang pada gilirannya membuat file dan menetapkan nama file ke output dari date +"%d%m%Y
perintah.
Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan termasuk lembar contekan. Hentikan perintah Googling Git dan sebenarnya belajar itu!
Akhirnya, kami menambahkan multiline
konsep penugasan variabel perintah dengan menambahkan garis miring terbalik ()
antara ls
Command -l
tandai untuk hanya menampilkan file teks menggunakan *.txt
. Garis miring terbalik adalah karakter pelarian yang memberi tahu shell untuk tidak menafsirkan karakter berikutnya.
Dalam majalah echo
perintah, kami menambahkan -e
bendera untuk menggunakan karakter khusus, yaitu, n
(baris baru), untuk mencetak output di baris baru.
Kami mendapatkan hasil berikut setelah menjalankan skrip:
$ ./variable.sh
Kesimpulan
Dalam panduan singkat ini, kami telah melihat bagaimana Anda dapat mengatur output dari sebuah perintah ke variabel di Bash. Kami telah melihat perbedaan antara sintaks untuk substitusi perintah, dengan memperhatikan peningkatan keterbacaan dari $(command)
atas substitusi berbasis backtick. Kemudian, kita telah melihat beberapa contoh penugasan sederhana dan penugasan keluaran berantai/bersarang.