在我的脚本中,我试图获取两个文件来获取变量。
但是它没有得到~/.bashrc
中定义的变量。
OS: Ubuntu Desktop 20.04.2 LTS
$ cat debug.sh
#!/usr/bin/env bash
cat > ~/env.sh << EOF
VAR1="123"
EOF
echo "VAR2=456" >> ~/.bashrc
source ~/env.sh
source ~/.bashrc
set -u
echo ${VAR1}
echo ${VAR2}
$ ./debug.sh
123
./debug.sh: line 14: VAR2: unbound variable
在ubuntu版本中,.bashrc会检查它是否以交互方式运行,如果不是,它将什么都不做。非交互式意味着您在另一个shell中调用它,您可以在.bashrc.中注释掉以下行
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac