目录
- 1.判断命令是否存在
- 优雅方法1
- 优雅方法2
- 优雅方法3
- 2.返回错误退出
- 1.||exit退出
- 2.使用-e
- 3.set-e
- 3.返回错误提示
- 一般方法:
- 优雅方法
1.判断命令是否存在
优雅方法1
首先,检查命令是否有效的惯用方法直接在if语句中。
if command; then
echo notify user OK >&2
else
echo notify user FAIL >&2
return -1
fi
(良好做法:使用>&2将消息发送给stderr。)
优雅方法2
将通用逻辑转移到共享函数中。
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
优雅方法3
installed () {
command -v "$1" >/dev/null 2>&1
}
if installed <command1>
then
<command1> xx
else
<command1> xxx
fi
2.返回错误退出
1.|| exit退出
command1 || exit
command2 || exit
command3 || exit
2.使用-e
$ bash -e xx.sh
#!/bin/bash -e xx.sh
command1
command2
command3
3.set -e
$ bash xx.sh
#!/bin/bash
set -e
command1
command2
command3
3.返回错误提示
一般方法:
方法1
if do some command; then
echo notify user OK
else
echo notify user fail
exit 255 # exit code must be unsigned short
fi
方法2
do some command
if [ $? -eq 0 ]; then
echo notify user OK
else
echo notify user FAIL
return -1
fi
优雅方法
方法1
die() {
local message=$1
echo "$message" >&2
exit 1
}
command1 || die 'command1 failed'
command2 || die 'command2 failed'
command3 || die 'command3 failed'
方法2(推荐)
warn () {
echo "$@" >&2
}
die () {
status="$1"
shift
warn "$@"
exit "$status"
}
do some command && echo notify user OK || die 255 Notify user fail
到此这篇关于shell命令返回值判断的方法实现的文章就介绍到这了,更多相关shell命令返回值判断内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!