如何将 VAR 导出到另一个脚本

如何将 VAR 导出到另一个脚本

我如何将此变量导出到另一个脚本。另一个脚本需要运行来运行一些命令。我想要这个,因为脚本太大,我想将其拆分并将 var 放入另一个脚本中

# 当帕拉夫拉斯通过使用者名字时,请注意保护
密码列表=“$HOME/passwords.txt”
user_list =“$ HOME / users.txt”
newpassword_list="$HOME/newuserpassword.txt"
# 邮件
目的地=“邮件”
ENVIADOPOR="邮件"
ASSUNTO="Palavra passe, utilizadores, 主机名"
# SSH 密码
run1 =“sshpass -p $oldpass ssh主机@ip”
run2 =“sshpass -p $新密码 ssh 主机@ip”
run3 =“sshpass -p $oldpass ssh主机@ip”
run4="sshpass -p $新密码 ssh 主机@ip"
run5 =“sshpass -p $oldpass ssh redmine@ip”
run6 =“sshpass -p $新密码 ssh redmine@ip”

答案1

为了基本上回答您的问题,变量赋值之前的“export”关键字将使您将运行的所有子 shell 都可用,例如:

export DESTINATARIO="mail"

但是,如果原因是您的脚本“太大”,您也可以考虑将 shell 脚本组织到库中,并使用顶部脚本调用包含文件中的函数。例子:

#!/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

例如,在 mylib1.sh 中有 lib1func1 的函数定义:

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

当然,顶层 shell 也可以导出库知道的变量(全局变量),但我不鼓励这种方式,因为它的模块化程度较低。

相关内容