首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对非零退出代码执行一些命令?

如何对非零退出代码执行一些命令?
EN

Stack Overflow用户
提问于 2022-06-28 04:27:59
回答 2查看 68关注 0票数 0

我正在运行以下命令:

代码语言:javascript
运行
复制
OLDIFS=$IFS
IFS=$'\n'
for i in $(find $HOME/test -maxdepth 1 -type f); do
    if [ $? -eq 0 ]; then
        telegram-upload --to 12345 --directories recursive --large-files split --caption '{file_name}' $i &&
            rm $i
    fi
done
IFS=$OLDIFS

如果电报上传命令以非零代码退出,我打算执行以下操作:

rm somefile && wget someurl && rerun the whole command

我该怎么做这样的事?

EN

回答 2

Stack Overflow用户

发布于 2022-06-28 05:49:36

这很简单:做一个没完没了的循环,一旦你成功了,你就会爆发出来:

代码语言:javascript
运行
复制
for i in $(find $HOME/test -maxdepth 1 -type f)
do
  while true
  do
    if telegram-upload --to 12345 --directories recursive --large-files split --caption '{file_name}' $i
    then
      break
    else
      rm somefile && wget someurl
    fi
  done
done

UPDATE:为了完整起见,我还在文件上添加了循环。请注意,如果您的文件名中包含空白,则遍历这些文件的方法将失败。然而,这已经是您自己的方法中的一个问题,而不是问题的一部分,所以我不讨论这个问题。

票数 0
EN

Stack Overflow用户

发布于 2022-06-28 06:08:46

我相信您可以按以下方式捕获退出代码:

代码语言:javascript
运行
复制
exit_code=$(telegram-upload --to 12345 ...)

在这里,您可以使用变量$exit_code作为常规变量,

比如if [ $exit_code -eq 0 ]; then)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72780757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档