使用 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. 1.sh输出$answer的值:echo "$answer",并将其捕获到一个变量中,然后将其作为参数传递给2.sh3.sh:

    answer=$(1.sh)
    2.sh "$answer"
    3.sh "$answer"
    
  2. 而不是执行脚本,获取它们以便它们由当前 shell 执行,而不是在新进程中执行。然后 1.sh 中设置的任何参数将可用于 2.sh3.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