GNU/Linux >> Linux Esercitazione >  >> Linux

Condivisione di variabili su più script di shell?

Sto cercando di riassumere più script di shell all'interno di uno script di shell di grandi dimensioni, come questo:

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

Tutti gli script condividono le stesse variabili var e var2 . Volevo eliminare le definizioni delle variabili dai singoli script di shell e inserirle invece nello script di shell grande, in modo che quando cambio il valore delle variabili devo farlo solo una volta.

Tuttavia, quando lo faccio

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

le variabili non vengono riconosciute dai riferimenti $var1 e $var2 nei singoli script della shell.

Mi scuso se la domanda è stata posta in precedenza, sono nuovo nello scripting in generale e non sapevo cosa cercare.

Sarebbe anche bello sapere come potrei scorrere gli script con più input variabili, come

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

Risposta accettata:

Quando esegui gli script 1-3 all'interno del tuo script principale, ciascuno viene eseguito all'interno della propria sottoshell, motivo per cui non riconoscono le variabili definite nella loro shell padre. Usa export per rendere le variabili disponibili alle sottoshell:

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

Un'alternativa (rilevante per la tua seconda domanda) sarebbe quella di passare le variabili agli script come parametri posizionali:

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

All'interno degli script 1-3, queste variabili sarebbero quindi disponibili come $1 e $2 rispettivamente.


Linux
  1. Impostazione delle variabili d'ambiente della shell | BASH Shell

  2. Quali sono i parametri/variabili speciali della shell (bash)?

  3. Come sapere se una durata è superiore a un'ora su più script di shell?

  4. Come scrivere più stringhe di righe usando Bash con variabili?

  5. Esegui tutti gli script della shell nella cartella

Scrivere commenti negli script Bash

.bashrc vs .bash_profile

Script di shell per principianti - Come scrivere script Bash in Linux

Bash Beginner Series #2:Comprensione delle variabili nello scripting di Bash Shell

Parametri posizionali di Bash spiegati con 2 script di shell di esempio

Comprensione delle variabili in Bash Shell sotto Linux