Como exportar VAR para outro script [closed]

0

Como posso exportar esse vars para outro script. O outro scrit precisa ser executado para executar alguns comandos. Eu quero isso porque o script é muito grande e eu quero dividi-lo e colocar o var em outro script

# Ficheiros onde serão guardados as palavras passes e os nomes do utilizadores
password_list="$HOME/passwords.txt" 
user_list="$HOME/users.txt" 
newpassword_list="$HOME/newuserpassword.txt" 
# MAIL
DESTINATARIO="mail"
ENVIADOPOR="mail"
ASSUNTO="Palavra passe, utilizadores, hostname"
# SSHPASS
run1="sshpass -p $oldpass ssh host@ip"
run2="sshpass -p $newpassword ssh host@ip"
run3="sshpass -p $oldpass ssh host@ip"
run4="sshpass -p $newpassword ssh host@ip"
run5="sshpass -p $oldpass ssh redmine@ip"
run6="sshpass -p $newpassword ssh redmine@ip"

    
por helpme123 08.05.2018 / 16:18

1 resposta

1

Para responder basicamente à sua pergunta, a palavra-chave "exportar" antes da atribuição da variável será disponibilizada para todas as sub-shells que você executar, por exemplo:

export DESTINATARIO="mail"

Howerver, se a razão é que seu script é "muito grande", você também pode considerar organizar seus scripts de shell em bibliotecas, com um script superior chamando funções em arquivos incluídos. Exemplo:

#!/bin/bash
# load functions defined in mylib1.sh and mylib2.sh
source mylib1.sh
source mylib2.sh
# set my var
VAR1=123abc
# call functions from mylib1.sh and mylib2.sh
lib1func1 $VAR1
lib2func2 $VAR1

Tendo por exemplo em mylib1.sh a definição de função de lib1func1:

lib1func1() {
  local firstvar=$1    # reading 
  echo $firstvar
}

Naturalmente, o shell superior também pode exportar variáveis (globais) que as bibliotecas conhecerão, mas eu não o incentivaria dessa maneira, já que é menos modular.

    
por 08.05.2018 / 17:41