eval 扫描参数或命令进行替换,然后再执行,前后进行两次扫描
例一
test=9999
show='the value: $test'
echo $show
eval echo $show
## 执行结果
## the value: $test
## the value: 9999
实用例子
config.yaml.template
ip=${HOST_IP}
addr=${ADDR}
config.sh
#!/bin/bash
HOST_IP="192.168.1.1"
ADDR="12345678"
template=config.yaml.template
eval "cat <<EOF
$(cat $template)
EOF
" > config.yaml
执行config.sh 可以替换config.yaml.template里面的变量,生成特定的配置,很方便的用法