Stu*_*Tea 6 bash shell-script bashrc
许多命令行程序提供了开关,允许您在加载配置文件之前对其进行验证。(例如,nginx -c path/to/file -t
允许用户path/to/file
在尝试使用该文件启动 nginx 之前验证位于 的配置文件。
.bash_profile
在 bash 中是否有类似的功能?
Bash有一个-n选项是意志
读取命令但不执行它们。这可用于检查脚本的语法错误。
它将输出到 stderr 并设置 $? 如果存在语法问题,则为 2。你可以像这样在 .bash_profile 上使用它:
bash -n .bash_profile
if [[ $? -ne 0 ]]
then
# handle an error
fi
Run Code Online (Sandbox Code Playgroud)
基于注释字符串,我不禁添加了以不同方式添加这些全局变量的建议。考虑一个有点人为的情况,用户的 .bash_profile 在它的末尾有一个“返回”。未来的 bash 调用将跳过附加任何内容(如变量赋值)。考虑将这些全局变量放在 /etc 下的某处(例如 /etc/profile.d,假设这些文件来自您的 /etc/profile);这样,您可以根据各种 shell 语法(csh、bash)来设置它们,并且您不必检查它们是否在用户的环境中设置或弄乱了他们的环境文件。
另一种替代方法是将这些全局变量分配放入您选择的自定义 /etc 文件中,并将代码添加到 .bash_profile 文件中以获取该文件(如果存在)。这与您当前的计划具有相同的缺点——编辑用户的本地文件——但增加了为不同用户/场景使用不同全局文件的灵活性。