我正在运行以下命令:
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
我该怎么做这样的事?
发布于 2022-06-28 05:49:36
这很简单:做一个没完没了的循环,一旦你成功了,你就会爆发出来:
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
doneUPDATE:为了完整起见,我还在文件上添加了循环。请注意,如果您的文件名中包含空白,则遍历这些文件的方法将失败。然而,这已经是您自己的方法中的一个问题,而不是问题的一部分,所以我不讨论这个问题。
发布于 2022-06-28 06:08:46
我相信您可以按以下方式捕获退出代码:
exit_code=$(telegram-upload --to 12345 ...)在这里,您可以使用变量$exit_code作为常规变量,
比如if [ $exit_code -eq 0 ]; then)。
https://stackoverflow.com/questions/72780757
复制相似问题