使用bash导入和导出变量(读取-p/input)



我有以下结构:

1.sh
2.sh
3.sh

所有这些脚本都在All .sh

1.sh取变量(假设…回答)从用户(输入),并在1.sh脚本中使用它。

read -p 'Answer is :  ' answer

所有我想要的是导出或导入变量答案从1.sh到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
    

最新更新