使用 bash 导入和导出变量(读取 -p/input)
importing and exporting variables (read -p/input) using bash
我有以下结构:
1.sh
2.sh
3.sh
所有这些脚本都在 all.sh
1.sh
从用户(输入)获取变量(比方说... answer)并在 1.sh 脚本中使用它。
read -p 'Answer is : ' answer
我只想将 1.sh 中从用户处获取的变量 answer 导出或导入到 2.sh 和 3.sh。
您有两个选择:
让1.sh
输出$answer
的值:echo "$answer"
,并将其捕获到一个变量中,然后将其作为参数传递给2.sh
和 3.sh
:
answer=$(1.sh)
2.sh "$answer"
3.sh "$answer"
而不是执行脚本,获取它们以便它们由当前 shell 执行,而不是在新进程中执行。然后 1.sh
中设置的任何参数将可用于 2.sh
和 3.sh
.
source 1.sh # sets a value for $answer
source 2.sh
source 3.sh
1.sh
中的 运行 export answer
略有变化;结果是您不必获取其他两个脚本的来源:
source 1.sh
2.sh # answer is inherited from the environment
3.sh # answer is inherited from the environment
我有以下结构:
1.sh
2.sh
3.sh
所有这些脚本都在 all.sh
1.sh
从用户(输入)获取变量(比方说... answer)并在 1.sh 脚本中使用它。
read -p 'Answer is : ' answer
我只想将 1.sh 中从用户处获取的变量 answer 导出或导入到 2.sh 和 3.sh。
您有两个选择:
让
1.sh
输出$answer
的值:echo "$answer"
,并将其捕获到一个变量中,然后将其作为参数传递给2.sh
和3.sh
:answer=$(1.sh) 2.sh "$answer" 3.sh "$answer"
而不是执行脚本,获取它们以便它们由当前 shell 执行,而不是在新进程中执行。然后
1.sh
中设置的任何参数将可用于2.sh
和3.sh
.source 1.sh # sets a value for $answer source 2.sh source 3.sh
1.sh
中的 运行export answer
略有变化;结果是您不必获取其他两个脚本的来源:source 1.sh 2.sh # answer is inherited from the environment 3.sh # answer is inherited from the environment