我在Linux中使用bash脚本来迁移数据库输出文件,而我想知道一种在bash脚本中执行Linux命令时处理错误的方法。
例如,通常当我想遍历目录中的文件时,我会这样写
# list files and grep results for .sql extension
for FILE in `ls | grep ".sql"`
do
echo "found file: $FILE"
done
这非常有效,因为grep如果文件扩展名为.sql或不返回任何内容,则返回文件名
我想知道如何使用Linux命令返回结果或错误,例如
ls ./*.sql
它返回文件名,但是如果找不到文件,则返回错误
ls: ./*.sql: No such file or directory
是否可以检查Linux命令是否在bash脚本中返回错误?
最佳答案
首先,您实际上不需要这里的ls
命令。您可以这样做:
# list files and grep results for .sql extension
for file in *.sql; do
echo "found file: $file"
done
然后,如果不存在
*.sql
文件,请避免进行单次迭代,请使用:shopt -s nullglob
# list files and grep results for .sql extension
for file in *.sql; do
echo "found file: $file"
done
通常,您可以在运行任何命令后检查
$?
来检查最近执行的命令的状态。关于linux - Linux Bash脚本错误处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29168470/