gpt4 book ai didi

linux - 使用 gsutil 在 gcloud shell 上链接 bash 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 12:19:14 24 4
gpt4 key购买 nike

我构建了一系列 bash 脚本来为数据管道运行 BigQuery 作业。这些脚本保存在谷歌云存储桶中。我使用这个将它们通过管道传递给 sh:

gsutil cat gs://[bucket]/[filename] | sh

如果我从命令行运行这个基本上没有问题,但是一旦我尝试从 bash 脚本中运行这个命令,我总是收到找不到文件的错误?

这似乎不是 PATH 问题(我可能弄错了),因为从脚本中调用 $PATH 会显示 gsutil 所在的位置。

这是权限问题吗?

我在浏览器的谷歌云控制台 shell 中运行它。感谢您的帮助。

最佳答案

首先,尝试打印出 gsutil cat 命令的输出(stdout 和 stderr),而不是将其通过管道传输到 sh。如果您收到来自该命令的错误,这将有助于阐明 sh 提示的原因。 (以后,请尝试复制/粘贴您在发布问题时收到的确切错误消息。)

比较两次调用的 gsutil version -l 的输出也很有帮助。如果这是一个基于身份验证的问题,您可能会看到 config path(s) 行的不同值。如果是这种情况,则可能是:

  • 您正在以不同于通常运行 gsutil 的用户身份运行脚本。 gcloud 在 $HOME/.config/gcloud/... 下查找要传递给 gsutil 的凭证...例如如果您以 Bob 身份运行 gcloud auth login,但您以 root 身份运行脚本,gcloud 将尝试寻找 root 的凭据,而不是 Bob 的。
  • 在您的脚本中,您直接从 .../google-cloud-sdk/platform/gsutil/ 调用 gsutil,而不是它的包装器 .../google-cloud -sdk/bin/gsutil 负责传递 gcloud 凭据。

关于linux - 使用 gsutil 在 gcloud shell 上链接 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46497286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com