我在Linux中使用bash脚本来迁移数据库输出文件,我想知道在bash脚本中执行Linux命令时处理错误的方法。
例如通常当我想循环通过目录中的文件,我会写这样的
# list files and grep results for .sql extension for FILE in `ls | grep ".sql"` do echo "found file: $FILE" done
这完美地工作,因为如果它有一个.sql扩展名或返回什么,grep返回文件名
我想知道如何使用返回结果或错误的Linux命令,如
Linux – Bash将一个stringredirect到一个文件
rdiff备份bash脚本和cron的麻烦
奇怪的行为,而负数乘以-1
如何在我的Android中运行BASH脚本?
ls ./*.sql
ls: ./*.sql: No such file or directory
是否有可能检查一个Linux命令是否在bash脚本中返回一个错误?
如何在Linux shell脚本中查找和删除基于date的文件而不查找?
如何find重名的同名文件,但在不同情况下存在于同一目录中的Linux文件?
Git推送到远程“没有这样的文件或目录”
将多个variables与通配符合并为一个variables
首先你不需要在这里的命令。 你可以做:
# list files and grep results for .sql extension for file in *.sql; do echo "found file: $file" done
shopt -s nullglob # list files and grep results for .sql extension for file in *.sql; do echo "found file: $file" done
一般来说,你可以检查$? 运行任何命令后检查最近执行的命令的状态。
您可以使用&&和||来检查错误 :
ls ./*.sql && echo "some files exist" || echo "no such files exist"
ls ./*.sql ; echo $?
您可以使用$?来检查上次运行命令的退出代码 变量在bash中。 通常情况下,成功执行返回0 ,失败执行返回1或更高。 举个例子:
$ touch /root/test touch: cannot touch '/root/test': Permission denied $ echo $? 1
你可以将它合并到你的bash脚本中,如下所示:
#!/bin/bash touch /root/test if [ $? -eq 0 ] then echo "Successfully created file" else echo "Could not create file" fi
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。