Bagaimana variabel dipertahankan di Linux?
Shell baris perintah dari sistem operasi Linux adalah alat yang ampuh yang, pada intinya, adalah penerjemah bahasa pemrograman. Seperti bahasa pemrograman lainnya, shell perintah memungkinkan Anda menggunakan variabel untuk menyimpan, mengambil, dan memanipulasi data.
Menetapkan dan mengambil nilai variabel
Di shell perintah bash, yang merupakan shell default yang digunakan di Linux, Anda dapat menyetel variabel menggunakan sintaks umum NAMA = NILAI. Misalnya, pada prompt perintah, Anda dapat mengetik:
x=5
Dan variabel bernama x akan disetel ke nilai numerik 5. Nama variabel bisa dalam huruf besar atau kecil, atau campuran keduanya, dan peka huruf besar / kecil. Saat mengatur variabel, tidak boleh ada spasi di antara nama variabel, tanda sama dengan, dan nilai.
Tidak perlu mendeklarasikan variabel sebelumnya, atau menentukan tipe datanya. Bash menentukan jenis variabel berdasarkan nilainya.
Misalnya, variabel kita juga bisa berisi string:
x=Hello
Untuk string sederhana, tidak perlu mengapit string dalam tanda kutip, tetapi jika string berisi spasi, Anda harus mengapitnya dengan tanda kutip ganda:
x="Hello, World!"
Untuk mengambil nilai variabel Anda, awali dengan tanda dolar. Misalnya, untuk melihat nilai x menggunakan gema perintah, Anda akan menjalankan:
echo $x
Output mana:
Hello, World!
Apa yang terjadi di sini adalah, shell mengambil nilai variabel Anda dan memasukkannya ke dalam perintah Anda. Anda dapat merujuk ke variabel di mana saja dalam perintah Anda, bahkan di dalam string yang dikutip ganda:
echo "$x $x Can anybody hear me? I said, $x"
Hello, World! Hello, World! Can anybody hear me? I said, Hello, World!
Variabel hanya diinterpretasikan di dalam string jika Anda menggunakan tanda kutip ganda. Jika Anda menggunakan tanda kutip tunggal, nama variabel diartikan secara harfiah, tanpa interpretasi:
echo '$x $x Can anybody hear me? I said, $x'
$x $x Can anybody hear me? I said, $x
Mengatur nilai variabel menjadi output dari sebuah perintah
Untuk mengatur nilai variabel Anda menjadi output dari perintah tertentu, gunakan formulir:
NAME=$(COMMAND)
Misalnya, jika nama pengguna Anda adalah “steven”, menjalankan siapa saya perintah mengembalikan nilai steven. Anda dapat mengatur ini ke variabel:
myname=$(whoami)
echo $myname
steven
Anda dapat melakukan ini untuk perintah apa pun. Jika perintah membutuhkan argumen, Anda tidak perlu menyertakan perintah dalam tanda kutip. Semua yang ada di dalam tanda kurung dijalankan sebagai perintah:
x="Hello, World!"
x=$(echo $x$x$x)
echo $x
Hello, World!Hello, World!Hello, World!
Menggunakan variabel dalam skrip sederhana
Mari kita lihat bagaimana kita dapat menggunakan variabel dalam skrip cadangan sederhana. Katakanlah Anda ingin mencadangkan semua yang ada di direktori dokumen di direktori home Anda. Skrip mengarsipkan semua yang ada di direktori itu, dan direktori apa pun yang dikandungnya, ke dalam arsip tar yang namanya berisi tanggal saat ini. Mari simpan backup di direktori bernama backup di direktori home Anda (kami anggap direktori ini sudah ada. Jika belum, Anda dapat menjalankan mkdir ~ / backups untuk membuatnya).
Buka editor teks dan tempatkan teks ini di file baru:
#!/bin/bash
MYFILENAME=~/backups/documents-backup-$(date +%Y-%m-%d).tar.gz
tar -czf $OUTPUTFILE ~/documents
Mari kita lihat setiap baris skrip ini. Baris pertama, #! / bin / bash, mendeklarasikan skrip sebagai file yang dapat dijalankan untuk dijalankan / bin / bash, yang dapat dieksekusi dari shell perintah bash.
File tidak dapat dieksekusi sampai kita chmod file nanti, tapi baris ini diperlukan dalam skrip bash yang tepat.
Baris kedua menetapkan variabel MYFILENAME, yang berisi nama arsip yang berisi cadangan kami. Bagian pertama dari nama file adalah direktori backup kami, ~ / backup.
Karakter tilde (~) adalah nama direktori khusus yang selalu mewakili direktori home kita.)
Selanjutnya, kami memiliki awal nama file, dokumen-cadangan-. Kemudian, kami memasukkan tanggal saat ini menggunakan tanggal perintah, simbol plus, dan string format tanggal % Y-% m-% d. Misalnya, jika tanggalnya 23 Februari 2015, itu akan kembali 2015-02-23.
Terakhir, kami menggunakan ekstensi .tar.gz, yang merupakan ekstensi nama file yang sesuai untuk file tar yang dikompresi dengan gzip. Jadi, jika kami menjalankan skrip ini pada tanggal 23 Februari 2015, nilai MYFILENAME akan menjadi ~ / backups / documents-backup-2015-02-23.tar.gz. Jika kami menjalankannya pada 7 Mei 2015, nilainya akan menjadi ~ / backups / documents-backup-2015-05-07.tar.gz.
Baris ketiga adalah perintah yang membuat arsip. Kami menggunakan ter perintah dengan opsi -czf, yang menciptakan (c) arsip gzip (z) menggunakan nama file yang ditentukan (f). Kemudian kami menentukan nama file arsip dengan mengacu pada variabel yang kami buat di baris 2, BERKAS KELUARAN. Terakhir, kami beri tahu ter apa yang ingin kami arsipkan: direktori ~ / dokumen.
Untuk menjalankan skrip, simpan file teks di direktori home Anda (atau di mana pun Anda suka) dan berikan nama yang sesuai, misalnya, backup-my-docs. Tidak perlu memberinya ekstensi nama file. Keluar dari editor teks, dan buat file tersebut dapat dieksekusi menggunakan chmod + x perintah, misalnya:
chmod +x ~/backup-my-docs
Sekarang Anda dapat menjalankan skrip. Misalnya, jika skrip ada di direktori kerja Anda, Anda dapat menjalankannya dengan:
./backup-my-docs
Atau, jika ada di direktori home Anda, Anda dapat menjalankannya dari direktori mana pun dengan perintah:
~/backup-my-docs