shell命令返回值判斷的方法實現
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命令返回值判斷內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- linux shell 編程之函數使用詳解
- shell 流程控制語句的具體使用
- shell腳本中 /dev/null 的用法小結
- Mac為docker和kubectl添加自動補全命令的方法
- 監控MySQL主從狀態的shell腳本