پرسش و پاسخ شماره ۱۰۱ - آموزش اسکریپت نویسی
X
تبلیغات
رایتل

آموزش اسکریپت نویسی

آموزش اسکریپت نویسی پوسته گنو-لینوکس

#!/bin/bash

پرسش و پاسخ شماره ۱۰۱

پرسش و پاسخ شماره ۱۰۱

توابع سودمند همگانی(warn و die)

(اگر شما در جستجوی گزینه پردازش بوده‌اید، پرسش و پاسخ شماره ۳۵ را ملاحظه کنید.) در مورد توابع ذیل بارها در ‎#bash‎ سؤال شده است، بنابراین امیدواریم آنها برایتان مفید باشد.

##
# warn: چاپ می‌کند stderr پیغامی در‎
# warn "format" ["arguments"...] :طرز استفاده ‎
#
warn() {
  local fmt="$1"
  shift
  printf "script_name: $fmt\n" "$@" >&2
}

###
### زیرین "die" سه تابع‎
### فوق "warn" بر اساس تابع‎
###

##
# چاپ می‌کند stderr یک پیغام در ‎:‎ (نگارش ساده) die ‎
# .و با وضعیت خروج آخرین فرمان خارج می‌شود‎
# 
# ‎some_command || die "پیغام شما" ‎["arguments"...]‎   :‎طرز استفاده‎
#
die () {
  local st="$?"
  warn "$@"
  exit "$st"
}

##
#  stderr یک پیغام در‏ ‎:‎ (نگارش وضعیت صریح) die‎
#  .چاپ می‌کند و با وضعیت معین شده خارج می‌شود‎
# if فلان; then die status_code "پیغام"  ‎["arguments"...]‎; fi : طرز استفاده ‎
#
die() {
  local st="$1"
  shift
  warn "$@"
  exit "$st"
}

##
#  stderr پیغامی در‏‎:‎ (نگارش وضعیت اختیاری) die ‎
#  چاپ می‌کند و با وضعیت خروج تعیین شده یا‎
# .وضعیت خروج آخرین فرمان خارج می‌شود‎
#  some_command || die [status code] "message" ["arguments"...] :طرز استفاده ‎
#
die() {
  local st="$?"
  if [[ "$1" != *[^0-9]* ]]; then
    st="$1"
    shift
  fi
  warn "$@"
  exit "$st"
}


CategoryShell

پرسش و پاسخ 101 (آخرین ویرایش ‎2013-08-27 00:04:03‎ توسط 162)