1

我编写简单的 bash 脚本并运行它:

#!/bin/bash
set -e

bq load --replace ...

我得到这个错误:

ERROR: permission denied for table message
WRITING LINES: 0

正如我们所看到的,我们得到了一个与访问相关的明显错误。为什么脚本以 0 代码结束?

真的在使用gcloudbq(以及其他 google-family cli utils)时需要在 bash 中写入 catch 错误吗?

此方法有效并成功“中断”错误执行:

#!/bin/bash
set -e

function error() {
  exitcode=$1
  shift
  echo "ERROR: exited with level $exitcode, error was '$@'" >&2
  kill -s TERM $TOP_PID
}

bq load --replace ...
responseCode=$?
if [[ $responseCode -eq 1 ]]; then
  error 1
fi

这对我来说很重要,我在 Kubernetes (cronjob) 中运行脚本。谢谢

4

0 回答 0