linux - 无法从 bash 脚本获取 ~/.bashrc
问题描述
在我的脚本中,我尝试获取两个文件来获取变量。
但它未能获得~/.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
推荐阅读
- hyperledger-fabric - 具有自定义 IBM Cloudant 钱包的 Hyperledger Composer 失败 - 实体太大
- graphql - 查询中的 GraphQL 类型中的索引列表类型字段
- openssl - 了解使用 openssl 验证期间 pkcs7 块失败的原因
- javascript - 在哪里可以找到负责创建动画的 javascript 代码?- 网络流
- git - 将 git 与具有不同 Windows 用户名的同步文件一起使用
- javascript - 使用 ngfor 共享相同值的输入字段
- javascript - 以与另一个数组相同的顺序对数组进行排序
- ios - React Native / iOS TestFlight:启动时立即崩溃
- junit - Junit Mocking 投掷空指针
- javascript - 语法错误:在节点 6 上构建 Docusaurus 时出现意外标记)