这边有个配置文件
#backstage
${CHOME}/src/a.txt
#database
现在我自己的脚本如下
first=`sed -n '/#backstage/=' $1`
first1=`expr $first + 1`
end=`sed -n '/#database/=' $1`
end1=`expr $end - 1`
for i in `sed -n ${first1},${end1}p $1 | sed '/^ *$/d'`
do
dir=`dirname $i`
filename=`basename $i`
cp ./backstage/$filename $dir/
done
结果cp发现 $dir 依旧含有${CHOME}没有被解析到。
如果直接echo ${CHOME}/src/a.txt 是可以解析到环境变量${CHOME}的,但是从文件中读出来就解析不到了,还请帮忙指点下。谢谢!
其中配置CHOME的文件为不可执行权限,我个人理解为是不是从文件中读取的默认为字符串了不去解析文件了?
$CHOME 是自己定义的啊
追答原来是自己定义的,那你把它加入到系统环境变量内也是可行的吧。
追问这本就是个自己定义的全局变量吧,就当做取当前用户目录吧。我想实现的功能就是读取a文件相应内容,替换系统已有的文件。其中a中列出了替换的文件包含路径,一般就是${CHOME}/src/a.txt格式了,可以理解为 替换当前用户src目录下的a.txt文件。
追答如果是当前用户目录,那应该是 $HOME 怎么会是 $CHMOE
追问额 上面只是写的一个例子,因为真实环境中是CHOME=$HOME/XXX,所以当成HOME理解就是了。