Bagaimanakah pembolehubah dikekalkan di Linux?

Shell baris perintah sistem operasi Linux adalah alat yang kuat, pada terasnya, penerjemah bahasa pengaturcaraan. Seperti mana-mana bahasa pengaturcaraan lain, shell perintah membolehkan anda menggunakan pembolehubah untuk menyimpan, mengambil, dan memanipulasi data.

Menetapkan dan mengambil semula nilai ubahsuaian

Dalam shell perintah bash, yang merupakan shell lalai yang digunakan dalam Linux, anda boleh menetapkan pemboleh ubah menggunakan sintaks umum NAME = VALUE . Sebagai contoh, pada prompt arahan, anda boleh menaip:

 x = 5 

Dan pembolehubah bernama x akan ditetapkan ke nilai angka 5 . Nama-nama boleh ubah boleh di huruf besar atau huruf kecil, atau campuran kedua-duanya, dan mereka adalah sensitif huruf. Apabila menetapkan pemboleh ubah, tidak ada ruang di antara nama pembolehubah, sama dengan tanda, dan nilai.

Tidak perlu mengisytiharkan pemboleh ubah itu terlebih dahulu, atau menyatakan jenis datanya. Bash menentukan jenis pembolehubah berdasarkan nilainya.

Sebagai contoh, pembolehubah kami juga boleh mengandungi rentetan:

 x = Hello 

Untuk rentetan mudah, tidak perlu memasukkan rentetan tanda petikan, tetapi jika rentetan mengandungi ruang, anda mesti mengelilinginya dengan petikan berganda:

 x = "Hello, World!" 

Untuk mengambil nilai pembolehubah anda, awalan dengan tanda dolar. Sebagai contoh, untuk melihat nilai x menggunakan arahan echo, anda akan menjalankan:

 echo $ x 

Keluaran yang mana:

 Hai dunia! 

Apa yang berlaku di sini adalah, shell mengambil nilai pemboleh ubah anda dan memasukkannya ke dalam arahan anda. Anda boleh merujuk kepada pembolehubah mana-mana sahaja di dalam arahan anda, walaupun di dalam rentetan berganda:

 echo "$ x $ x Bolehkah seseorang mendengar saya? Saya berkata, $ x" 
 Hai dunia! Hai dunia! Bolehkah sesiapa mendengar saya? Saya berkata, Halo, Dunia! 

Petua: Pembolehubah hanya ditafsirkan di dalam rentetan jika anda menggunakan petikan berganda. Jika anda menggunakan sebut harga tunggal, nama pemboleh ubah akan ditafsirkan secara literal, tanpa tafsiran:

 echo '$ x $ x Bolehkah seseorang mendengar saya? Saya katakan, $ x ' 
 $ x $ x Bolehkah sesiapa mendengar saya? Saya katakan, $ x 

Menetapkan nilai pemboleh ubah menjadi output daripada arahan

Untuk menetapkan nilai pembolehubah anda menjadi output arahan tertentu, gunakan borang:

 NAME = $ (COMMAND) 

Sebagai contoh, jika nama pengguna anda "steven, " yang menjalankan perintah whoami akan mengembalikan nilai steven . Anda boleh menetapkan ini kepada pemboleh ubah:

 myname = $ (whoami) 
 echo $ myname 
 steven 

Anda boleh melakukan ini untuk sebarang arahan. Sekiranya arahan mengambil argumen, anda tidak perlu menyertakan arahan dalam petikan. Semua di dalam kurungan akan dijalankan sebagai arahan:

 x = "Hello, World!" 
 x = $ (echo $ x $ x $ x) 
 echo $ x 
 Hello, Dunia! Hello, Dunia! Halo, Dunia! 

Menggunakan pembolehubah dalam skrip mudah

Mari lihat bagaimana kita boleh menggunakan pembolehubah dalam skrip sandaran mudah. Katakan anda ingin menyandarkan segala sesuatu dalam dokumen direktori dalam direktori rumah anda. Skrip akan mengarkibkan segala-galanya dalam direktori itu, dan apa-apa direktori yang mengandunginya, ke dalam arkib tar yang namanya mengandungi tarikh semasa. Mari buat sandaran dalam direktori yang dipanggil sandaran dalam direktori rumah anda (kami akan mengandaikan direktori ini sudah ada) Jika tidak, anda boleh menjalankan mkdir ~ / backup untuk menciptanya).

Buka editor teks dan letakkan teks ini dalam fail baru:

 #! / bin / bash MYFILENAME = ~ / sandaran / dokumen-sandaran - $ (tarikh +% Y-% m-% d) .tar.gz 

tar -czf $ OUTPUTFILE ~ / dokumen

Mari lihat setiap baris skrip ini. Baris pertama, #! / Bin / bash, mengisytiharkan skrip sebagai fail boleh laku dan menentukan bahawa ia harus dijalankan dengan / bin / bash, yang boleh dieksekusi oleh shell perintah bash. Nota: Fail ini tidak akan dapat dieksekusi sehingga kami chmod fail tersebut kemudian, tetapi baris ini diperlukan dalam skrip bash yang sesuai.

Baris kedua menetapkan pembolehubah MYFILENAME, yang akan mengandungi nama arkib yang mengandungi sandaran kami. Bahagian pertama nama fail ialah direktori sandaran kami, ~ / sandaran .

Nota: Watak tilde ( ~ ) adalah nama direktori khas yang selalu mewakili direktori rumah kami.)

Seterusnya, kami mempunyai permulaan nama fail, dokumen-sandaran- . Kemudian, kita masukkan tarikh semasa menggunakan perintah tarikh, simbol ditambah, dan rentetan format tarikh % Y-% m-% d . Contohnya, jika tarikhnya ialah 23 Februari 2015, itu akan kembali 2015-02-23 .

Akhirnya, kami menggunakan pelanjutan .tar.gz, iaitu sambungan nama fail yang sesuai untuk fail tar gzip- termress . Jadi, jika kami menjalankan skrip ini pada 23 Februari 2015, nilai MYFILENAME akan menjadi ~ / sandaran / dokumen-sandaran-2015-02-23.tar.gz . Sekiranya kita berlari pada 7 Mei 2015, nilainya akan menjadi ~ / sandaran / dokumen-sandaran-2015-05-07.tar.gz .

Baris ketiga adalah arahan yang membuat arkib. Kami menggunakan perintah tar dengan pilihan -czf, yang akan mencipta ( c ) arkib gzip ( z ) menggunakan nama fail yang dinyatakan ( f ). Kemudian kami nyatakan nama fail arkib dengan merujuk kepada pembolehubah yang kami buat dalam baris 2, OUTPUTFILE . Akhir sekali, kami memberitahu tar apa yang kami ingin arsip: direktori ~ / dokumen .

Untuk menjalankan skrip, simpan fail teks dalam direktori rumah anda (atau mana-mana tempat yang anda suka) dan beri nama yang sesuai, sebagai contoh, backup-my-docs . Tidak perlu memberikan sambungan nama fail. Keluar dari editor teks, dan buat fail boleh laku menggunakan perintah chmod + x, contohnya:

 chmod + x ~ / backup-my-docs 

Sekarang anda boleh menjalankan skrip. Sebagai contoh, jika skrip berada dalam direktori kerja anda, anda boleh menjalankannya dengan:

 ./backup-my-docs 

Atau, jika ia berada dalam direktori rumah anda, anda boleh menjalankannya dari mana-mana direktori dengan perintah ini:

 ~ / backup-my-docs