在 Bash 中出现错误时将文本转换为数字

convert text to number in case of an error in Bash

我是运行这个命令里面一般returns一个数字。在出现错误的情况下,这会解析为稍后可能导致错误的文本。我该如何防止这种情况?

folder_get_time=$((time  /opt/alluxio/bin/alluxio fs copyToLocal "$SRC" "$COPY_TO_LOCAL" )2>&1 >/dev/null )

如果您不能可靠地捕获错误

if folder_get_time=$((time /opt/alluxio/bin/alluxio fs copyToLocal "$SRC" "$COPY_TO_LOCAL" )2>&1 >/dev/null )
then
    echo "success" >&2
else
    rc=$?
    echo "fail" >&2
    exit $rc
fi

也许检查 non-numeric 输出。

case $folder_get_time in
  '' | *[!0-9]*) echo "fail" >&2; exit 127 ;;
esac