我正在写一个循环,它在一个变量def
中累积字符串,从一个heredoc中阅读。在循环退出后,我看不到变量的值。
#!/usr/bin/sh
def=""
while read x; do
def="$def -D$x"
echo $def
done <<-COMMANDS_GREEN
hello="hello green world"
host="greenmen.com"
port=80
COMMANDS_GREEN
################### exit loop ########################
echo definition: $def
作为脚本输出,循环里面的所有.循环外的**definition:**不显示任何内容:
-Dhello="hello green world"
-Dhello="hello green world" -Dhost="greenmen.com"
-Dhello="hello green world" -Dhost="greenmen.com" -Dport=80
################### exit loop ########################
definition:
我是在Solaris 10下写的,而不是bash
1条答案
按热度按时间egmofgnx1#
改为
ksh
,解决了问题感谢@jhnc和@Gilles Quénot在评论中提供的信息