【发布时间】:2020-01-01 08:51:24
【问题描述】:
我正在尝试在heredoc 中执行IF..ELSE。 heredoc 是必要的,因为这组命令需要以不同的用户身份执行。
不幸的是,IF 语句没有按预期工作,并且总是跳转到ELSE 子句。当我从 heredoc 中删除 IF 块并将其放在外面时,它会按预期工作。
这可能是我缺少的一件简单的事情,但我不知道是什么。
rem=0
function1 () {
su - user1 <<'DONE'
if [[ "$rem" -eq 0 ]];
then
echo rem is even
else
echo rem is odd
fi
DONE
}
function1
它呼应了 rem 是奇怪的。
【问题讨论】:
-
使用这样的函数不会出现语法错误吗?我想你需要
export rem你,然后放弃- -
非常感谢!它现在可以工作了......我从来没有想过导出位......
-
@jenesaisquoi 是的,你说得对,
function不应该这样使用,这是我在更改代码以复制到这里时犯的一个错误。现在在问题中修复它。