我如何将此变量导出到另一个脚本。另一个脚本需要运行来运行一些命令。我想要这个,因为脚本太大,我想将其拆分并将 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 也可以导出库知道的变量(全局变量),但我不鼓励这种方式,因为它的模块化程度较低。