源操作符在bash中的括号内不起作用

Igo*_*gor 1 bash if-statement sh include

我想在我的bash脚本中包含一个配置文件,其中包含两个条件:

  1. 配置文件名是即时构建并存储在变量中,和
  2. 如果配置文件不存在,脚本应该失败:

的config.cfg:

 CONFIGURED=yes
Run Code Online (Sandbox Code Playgroud)

test.sh:

#!/bin/sh
$CFG=config.cfg

echo Source command doesn't work here:
[ -f $CFG ] && ( source $CFG ) || (echo $CFG doesnt exist; exit 127)
echo $CONFIGURED

echo ... but works here:
source $CFG
echo $CONFIGURED
Run Code Online (Sandbox Code Playgroud)

[...]声明中有什么问题?

Ign*_*ams 7

( ... )在单独的子shell中运行命令.如果要在可能的情况下在同一个shell中运行命令,请{ ... ; }改用.