GNU/Linux >> Belajar Linux >  >> Linux

Berbagi Variabel di Beberapa Skrip Shell?

Saya mencoba meringkas beberapa skrip shell dalam satu skrip shell besar, seperti ini:

#!/bin/sh
bash script1.sh
bash script2.sh
bash script3.sh

Semua skrip berbagi variabel yang sama var dan var2 . Saya ingin menghapus definisi variabel dari masing-masing skrip shell dan memasukkannya ke dalam skrip shell besar, sehingga ketika saya mengubah nilai variabel, saya hanya perlu melakukannya sekali.

Namun, ketika saya melakukannya

#!/bin/sh
var1="1"
var2="2"
bash script1.sh
bash script2.sh
bash script3.sh

variabel tidak dikenali oleh referensi $var1 dan $var2 dalam skrip shell individu.

Mohon maaf jika pertanyaan sudah pernah ditanyakan sebelumnya, saya baru mengenal scripting secara umum dan tidak tahu harus mencari apa.

Akan menyenangkan juga mengetahui bagaimana saya dapat mengulang skrip dengan banyak input variabel, seperti

var1="1 2 3 4 5"
var2="a b c d e"
for i in $var1;do for j in $var2;do
script1.sh
script2.sh
done;done

Jawaban yang Diterima:

Saat Anda menjalankan skrip 1-3 di dalam skrip utama Anda, mereka masing-masing dijalankan di dalam sub-kulitnya sendiri, itulah sebabnya mereka tidak mengenali variabel yang ditentukan di cangkang induknya. Gunakan export untuk membuat variabel tersedia untuk sub-kulit:

#!/bin/sh
export var1="1"
export var2="2"
bash script1.sh
bash script2.sh
bash script3.sh

Alternatif (relevan untuk pertanyaan kedua Anda) adalah meneruskan variabel ke skrip sebagai parameter posisi:

#!/bin/sh
var1="1"
var2="2"
bash script1.sh "$var1" "$var2"
bash script2.sh "$var1" "$var2"
bash script3.sh "$var1" "$var2"

Di dalam skrip 1-3, variabel ini kemudian akan tersedia sebagai $1 dan $2 masing-masing.


Linux
  1. Cara yang Tidak Biasa untuk Menggunakan Variabel Di Dalam Skrip Bash

  2. Cara menggemakan Baris Baru di Bash Shell Script

  3. Memahami Variabel di Bash Shell Di Linux

  1. Bagaimana cara menulis beberapa baris string menggunakan Bash dengan variabel?

  2. Jalankan semua skrip shell di folder

  3. Bagaimana cara menjalankan perintah berkali-kali, menggunakan bash Shell?

  1. Mengatur Variabel Lingkungan Shell | Kulit BASH

  2. Menyesuaikan shell Bash

  3. Penanganan kesalahan dalam skrip Bash