bash - وإعادة - حل مشكلة ظهور رسالة خطأ وعدم فتح المواقع في جوجل كروم




الخروج مع ظهور رسالة خطأ في bash(online) (2)

هل من الممكن الخروج عن الخطأ ، مع رسالة ، دون استخدام إذا عبارات؟

[[ $TRESHOLD =~ ^[0-9]+$ ]] || exit ERRCODE "Threshold must be an integer value!"

بالطبع الجانب الأيمن من || لن ينجح ، فقط لأعطيك فكرة أفضل عما أحاول إنجازه.

في الواقع ، أنا لا أمانع حتى مع رمز ERR الذي سيخرج ، فقط لإظهار الرسالة.

تصحيح

أعلم أن هذا سيعمل ، لكن كيف numeric arg required العرض numeric arg required بعد رسالتي المخصصة؟

[[ $TRESHOLD =~ ^[0-9]+$ ]] || exit "Threshold must be an integer value!"

استخدام exit مباشرة قد يكون خادعًا حيث يمكن الحصول على البرنامج النصي من أماكن أخرى. أفضل بدلاً من ذلك استخدام set -e فرعية مع set -e (يجب إضافة الأخطاء إلى cerr ، وليس cout):

set -e
[[ $TRESHOLD =~ ^[0-9]+$ ]] || \
     (>&2 echo "Threshold must be an integer value!"; exit $ERRCODE)

يمكنك استخدام وظيفة للراحة:

function error_exit {
    echo "$1" >&2   ## Send message to stderr. Exclude >&2 if you don't want it that way.
    exit "${2:-1}"  ## Return a code specified by $2 or 1 by default.
}

[[ $TRESHOLD =~ ^[0-9]+$ ]] || error_exit "Threshold must be an integer value!"




exit