if [ $? -eq 0 ]的含义

  • Post author:
  • Post category:其他

文章目录


前言

shell脚本中$?是指上一次命令执行的成功或者失败的状态。如果成功就是0,失败为1.。语句if [ $? -eq 0 ] 是判断if语句的上一个命令执行如果失败就执行if中的语句,否则就执行else中的内容。


正文

if [ $? -eq 0 ]语句代表上一个命令执行后的退出状态

$0:   shell或shell脚本的名字
$*:   以一对双引号给出参数列表
$@:  将各个参数分别加双引号返回
$#: 参数的个数
$_:  代表上一个命令的最后一个参数
$$:  代表所在命令的PID
$!:   代表最后执行的后台命令的PID
$?:  代表上一个命令执行后的退出状态

#! /bin/bash
SOME_DIR='/root/cjj/'  

cd $SOME_DIR
if [ $? -eq 0 ]; then  # 检查cd命令是否成功,如果成功才执行rm命令
        rm -rf *txt
else 'Cannot change directory'  # 如果cd命令运行失败,则打印一个错误信息,并退出,返回状态码1
        exit 1
fi

版权声明:本文为weixin_43656336原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。