磁盘已满时tar返回成功状态

时间:2019-05-16 08:57:02

标签: bash tar

我想在使用tar解压缩存档文件时捕获错误代码。

当我用完空间后测试tar的状态时;它会显示成功状态。

if sudo tar -xf $ARTIFACT_DIR/Deployment_$MODEL_RELEASE.tar.gz --directory $TEMP_DIRECTORY
then
   echo 'Success Decompressing!'
else
   echo 'Failure Decompressing file!'
   exit
fi

bash作业在状态为0时继续进行。

1 个答案:

答案 0 :(得分:0)

您可以借助$?实现。 (上一个运行命令的退出状态)

让我们以示例为例。

示例1 :(命令成功执行)

# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

# echo $?
0

Example2 :(命令未成功执行或没有输出。)

# cat /etc/passwd | grep boot

# echo $?
1

查找以下经过纠正的脚本。

#!/bin/bash
sudo tar -xf $ARTIFACT_DIR/Deployment_$MODEL_RELEASE.tar.gz --directory $TEMP_DIRECTORY
   if [ $? -eq 0 ] 
then
   echo 'Success Decompressing!'
else
   echo 'Failure Decompressing file!'
   exit
fi