无法让看似简单的 bash 函数工作


#!/bin/bash
START_SLEEP_TIME=2
LOOP_SLEEP_TIME=2

OK="false"
#need to wait for another proc first
sleep $START_SLEEP_TIME
RET=
check () {
echo "---1--"
echo "---2--"
return 1
}
# isn't even called but just making sure it's not a syntax issue
finalize () {
OK="true"
}

for i in {0..100}
do
echo "check"
VAL=check
sleep $LOOP_SLEEP_TIME
done
echo "Checks terminated. $OK"

脚本应该做更多的事情,但我试图剥离它的基本,看看为什么它不能工作。

上面对我来说总是打印

check
check
check

在休眠后,但它从不打印--1----2--。这个函数应该做更多的事情,但如果我不能让它工作,那就没有意义了。

VAL=check赋值checkVAL

如果您想调用函数check并将该函数的输出赋值给VAL,则设置为:

VAL=$(check)

如果您想要函数的退出值,则改为:

check
VAL=$?

只需调用您的check函数,即写入命令。返回值在$?

相关内容

  • 没有找到相关文章

最新更新