ScriptPath=$(dirname $0)
Userlist=${ScriptPath}/Config_Userlist.csv
user="hive"
export flag=0
sed 1d $Userlist | while read user_list
do
if [[ "$user_list" != "$user" ]]; then
flag=1
fi
done
echo $flag
如果条件通过,flag
的值将变为1。但是,当我在while循环之后获取该变量时,它再次为零。它不是在更新更改的值。
答案 0 :(得分:0)
管道创建子外壳,子外壳无法修改其父级中的变量。
如果您的外壳支持进程替换,则可以使用以下方式代替使用sed
并将其通过管道传递到while
while read user_list do;
... # all the same stuff you have in your loop
done < <(sed 1d "$Userlist")
,然后while
将在原始外壳中运行,您可以设置flag