ezv*_*ine 2 linux shell gsutil google-cloud-platform
我正在通过 python 调用 shell 脚本。
在我正在使用的脚本gsutil rm和gsutil cp命令中。
但是,每当这两个命令中的任何一个在不存在的 gcp 路径上运行时,都会出现错误。
例如:当我尝试时:
gsutil rm -r gs://some-bucket/somepath-not-present/
Run Code Online (Sandbox Code Playgroud)
我收到错误:
CommandException: 1 files/objects could not be removed.
Run Code Online (Sandbox Code Playgroud)
最终脚本的返回码是1。尽管我的代码本来可以正常执行。我希望脚本在找不到路径时不会给出错误。
有什么办法可以绕过这个。我已经尝试||过linux,但似乎不起作用。
如果您使用gsutil另一个可能受 打印的异常影响的脚本gsutil,您可以简单地尝试将 stderr 重定向到 /dev/null ,如下所示:
gsutil rm -r gs://some-bucket/somepath-not-present/ 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
但是,请注意,此时您将开始忽略该命令生成的任何错误。如果您这样做echo $?,您仍然会收到错误代码,1该代码可以告诉您文件不存在或发生其他异常。
编辑:
如果你想以退出代码 0 退出脚本,你可以这样做
gsutil rm -r gs://some-bucket/somepath-not-present/ || exit 0
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想命令返回 0,您可以使用
gsutil rm -r gs://some-bucket/somepath-not-present/ || true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2276 次 |
| 最近记录: |