我遇到一个问题,我的配置文件内容放在我的部署脚本中,因为他们从我的setting.sh文件中获取了他们的设置。这导致我的部署脚本非常庞大。
我想知道在bash中是否可以做这样的事情
setting.sh
USER="Tom"
log.conf
log=/$PLACEHOLDER_USER/full.log
deployment.sh
#!/bin/bash
# Pull in settings file
. ./settings.sh
# Link config to right location
ln -s /home/log.conf /home/logging/log.conf
# Write variables on top of placeholder variables in the file
for $PLACEHOLDER_* in /home/logging/log.conf
do
(Replace $PLACEHOLDER_<VARAIBLE> with $VARIABLE)
done
我希望这适用于配置文件中以$ placeholder _
开头的任何变量这个过程允许我从我的存储库移动一个通用的配置文件,然后在我的设置文件中添加适当的变量在配置中的占位符变量之上。
我一直坚持如何使用deployment.sh来实现这一点。
答案 0 :(得分:1)
这个小脚本将读取settings.sh
中的所有变量行,并替换每个PLACEHOLDER_xxx
中的file
。这对你有帮助吗?
while IFS== read variable value
do
sed -i "s/\$PLACEHOLDER_$variable/$value/g" file
done < settings.sh
答案 1 :(得分:0)
#!/usr/local/env bash
set -x
ln -s /home/log.conf /home/logging/log.conf
while read user
do
usertmp=$(echo "${user}" | sed s'@USER=\"@@' \
sed s'@"$@@')
user="${usertemp}"
log="${user}"/full.log
done < setting.sh
我不太了解你要做的其他事情,我会承认,但这有希望给你这个想法。使用阅读。