我想在bash脚本中读取远程配置文件;本地以下工作正常:
while IFS="=" read -r name value; do
declare "$name=$value"
done < "$cfg"
我尝试使用ssh
和cat
:
ssh "$hostname" "cat $remote_cfg" |
while IFS="=" read -r name value; do
declare "$name=$value"
echo $name $value
done
但是我的变量只在while循环的范围内声明,我怎样才能将它们带到外部范围?
提前致谢!
答案 0 :(得分:0)
我已经弄明白了(来源:http://mywiki.wooledge.org/BashFAQ/024)。
流程替换有效:
while IFS="=" read -r name value; do
declare "$name=$value"
done < <(ssh "$hostname" "cat ~/.cuttleline.cfg")