您的位置:首页 > 教程 > linux > shell命令返回值判断的方法实现

shell命令返回值判断的方法实现

2022-06-20 14:43:25 来源:易采站长站 作者:

shell命令返回值判断的方法实现

目录1.判断命令是否存在优雅方法1优雅方法2优雅方法32.返回错误退出1.||exit退出2.使用-e3.set-e3.返回错误提示一般方法:优雅方法1.判断命令是否存在优雅方法1首先,检查命令是否有...GCb站长之家-易采站长站-Easck.Com

目录
1.判断命令是否存在
优雅方法1
优雅方法2
优雅方法3
2.返回错误退出
1.||exit退出
2.使用-e
3.set-e
3.返回错误提示
一般方法:
优雅方法

GCb站长之家-易采站长站-Easck.Com

1.判断命令是否存在

GCb站长之家-易采站长站-Easck.Com

优雅方法1

首先,检查命令是否有效的惯用方法直接在if语句中。GCb站长之家-易采站长站-Easck.Com

if command; then
  echo notify user OK >&2
else
  echo notify user FAIL >&2
  return -1
fi

(良好做法:使用>&2将消息发送给stderr。)GCb站长之家-易采站长站-Easck.Com

GCb站长之家-易采站长站-Easck.Com

优雅方法2

将通用逻辑转移到共享函数中。GCb站长之家-易采站长站-Easck.Com

check() {
  local command=("$@")

  if "${command[@]}"; then
    echo notify user OK >&2
  else
    echo notify user FAIL >&2
    exit 1
  fi
}

check command1
check command2
check command3

GCb站长之家-易采站长站-Easck.Com

优雅方法3

installed () {
    command -v "$1" >/dev/null 2>&1
}
if installed <command1>
then
   <command1> xx
else
    <command1> xxx
fi

GCb站长之家-易采站长站-Easck.Com

2.返回错误退出

GCb站长之家-易采站长站-Easck.Com

1.|| exit退出

command1 || exit
command2 || exit
command3 || exit

GCb站长之家-易采站长站-Easck.Com

2.使用-e

$ bash -e xx.sh
#!/bin/bash -e xx.sh
command1
command2
command3

GCb站长之家-易采站长站-Easck.Com

3.set -e

$ bash xx.sh
#!/bin/bash
set -e
command1
command2
command3

GCb站长之家-易采站长站-Easck.Com

3.返回错误提示

GCb站长之家-易采站长站-Easck.Com

一般方法:

方法1GCb站长之家-易采站长站-Easck.Com

if do some command; then
  echo notify user OK
else
  echo notify user fail
  exit 255 # exit code must be unsigned short
fi

方法2GCb站长之家-易采站长站-Easck.Com

do some command
if [ $? -eq 0 ]; then
  echo notify user OK
else
  echo notify user FAIL
  return -1
fi

GCb站长之家-易采站长站-Easck.Com

优雅方法

方法1GCb站长之家-易采站长站-Easck.Com

die() {
  local message=$1

  echo "$message" >&2
  exit 1
}

command1 || die 'command1 failed'
command2 || die 'command2 failed'
command3 || die 'command3 failed'

方法2(推荐)GCb站长之家-易采站长站-Easck.Com

warn () {
 echo "$@" >&2
}

die () {
 status="$1"
 shift
 warn "$@"
 exit "$status"
}

do some command && echo notify user OK || die 255 Notify user fail

到此这篇关于shell命令返回值判断的方法实现的文章就介绍到这了,更多相关shell命令返回值判断内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!GCb站长之家-易采站长站-Easck.Com

GCb站长之家-易采站长站-Easck.Com

如有侵权,请联系QQ:279390809 电话:15144810328

相关文章

  • Linux下用GHOST来做系统备份

    Linux下用GHOST来做系统备份

    在Windows系统下备份我们可以用GHOST工具软件完成,Linux系统不能完全依赖于GHOST工具,一则是GHOST本身是有版权的软件,二是GHOST只支持ext2、ext3文件系统的Linux分区,不支持reiserfs、xfs等
    2019-10-25
  • 给 FreeBSD 12.1 安装 GNOME3 图形界面

    给 FreeBSD 12.1 安装 GNOME3 图形界面

    FreeBSD是一个完全开放的、安全的系统,可以Do it yourself的系统。但是个人还是不喜欢呆板的命令行界面,所有就给 FreeBSD 12.1 安装 GNOME3 图形界面。 开始操作,启动FreeBSD 12.1,以root身份
    2019-10-27
  • Ubuntu Studio一个不错的操作系统

    Ubuntu Studio一个不错的操作系统

    Ubuntu Studio 是一个基于 Ubuntu 而面向音频、视频及图形爱好者的操作系统。本次推出的 Ubuntu Studio 为 7.04 版,目前仅支持 Intel i386 兼容的处理器。 Ubuntu Studio 从大量的开源多媒体创作程序
    2019-10-25
  • 最受欢迎的10款Linux免费游戏

    最受欢迎的10款Linux免费游戏

    图为在Linux下运行的免费游戏America's Army 如果你认为 Linux下没有什么好游戏的话,那就错了!我们来看看Linux下最受欢迎的10款游戏吧,而且这些游戏都是完全免费的! # skyreal update(06-12
    2019-10-25
  • compiz fusion特效使用心得(附3D桌面图)

    compiz fusion特效使用心得(附3D桌面图)

    3D桌面图 LINUX发行版就是好,当大多数人还在沉迷于那些什么风格图标鸟玻璃效果甚至孜孜不倦津津乐道的时候,Linux的高手们已经悄悄为我们开启了一个桌面系统3D的时代。 当我第一次
    2019-10-25
  • Ubuntu 下aMule 的安装配置

    Ubuntu 下aMule 的安装配置

    aMule 是一个类似于 eMule 的多平台 P2P 客户端程序。以下将简略叙述 aMule 在 Ubuntu 中的安装及配置 [High ID] 与 [KAD] 的过程。 安装: sudo apt-get install amule sudo apt-get install amule-utils 如果需要
    2019-10-25
  • JMeter jp@gc - stepping thread group插件

    JMeter jp@gc - stepping thread group插件

    这是一个出单接口压力测试的小例子,了解一下压力测试最最基础的基础。出单接口是用来保险出单的,不需要在UI界面下一步下一步的出单,接口一调数据入库完事~~~。再啰嗦一句接
    2019-10-27
  • Ubuntu 下使用K3B软件刻录光盘(图)

    Ubuntu 下使用K3B软件刻录光盘(图)

    不知大家会不会在Ubuntu下刻录光盘呢?k3b是KDE环境下的一个CD/DVD刻录软件,有非常容易使用的界面,功能比较齐全。用起来感觉就象是win下的Nero一样简单自然,比ubuntu里原来的刻录CD方式
    2019-10-25