【发布时间】:2018-01-07 20:00:10
【问题描述】:
我在 for 循环内的 if 循环中使用结果变量。当我在文件末尾打印结果时,我得到“SERVER_STATUS:error”,但我想得到“SERVER_STATUS:success”。我应该改变什么以获得尊重的输出?
result="SERVER_STATUS:error"
for i in $(seq 1 10)
do
if [ "$i" = 4 ]; then
result="SERVER_STATUS:success"
echo $result
break
fi
done
echo "$result"
注意:我使用的是 shell 脚本。
更新1:-
如果我将 export 与变量一起使用,它可以按我的意愿工作。有什么问题吗?
result="SERVER_STATUS:error"
for i in $(seq 1 10)
do
if [ "$i" = 4 ]; then
export result="SERVER_STATUS:success"
echo $result
break
fi
done
echo "$result"
【问题讨论】:
-
无法复制。
-
@IgnacioVazquez-Abrams 请参考我的更新并告诉您的建议
-
两者都按预期返回
SERVER_STATUS:success两次。 -
您使用的是什么外壳?尝试将
#!/bin/bash作为脚本的第一行。 -
@karan 你用什么shell,你的第一个脚本适合我。我得到你想要的结果。我使用 bash shell。
标签: shell loops variables unix