【问题标题】:Bash script exporting variables with if function使用 if 函数导出变量的 Bash 脚本
【发布时间】:2021-04-09 22:11:07
【问题描述】:

我得到了一些关于检查变量是否为空的不工作脚本,并基于此创建下一个变量并将其导出。

export VARIABLE=macmac123

if [ -z "$VARIBLE" ]
then 
      unset $VAR2 
else 
      export VAR2="test"
fi

接下来我运行这个脚本 ./script.sh 然后运行 ​​echo $VAR2 没有显示任何内容。有任何想法吗?我无法更改整个脚本,因为我需要这个,但它不会将任何内容导出到环境变量中。

【问题讨论】:

  • unset引用变量时不要使用$
  • 环境变量由子进程继承。更改脚本中的变量不会影响父进程。
  • 你需要使用source scriptname在当前shell进程中运行脚本,让它改变它的变量。
  • 另外你需要修正错字:"$VARIBLE" -> "$VARIABLE"

标签: linux bash


【解决方案1】:

Shell 脚本在子shell 中执行。如果您想要当前 shell 中的变量,您必须 source 脚本,例如:source script.sh. script.sh(点是 source 的别名)。

【讨论】:

  • 反之亦然:source. 的同义词——“点”最初是在 Bourne shell 中发明的。
猜你喜欢
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
  • 2016-09-18
  • 2019-07-24
相关资源
最近更新 更多