Skip to content
This repository has been archived by the owner on Aug 24, 2024. It is now read-only.

Latest commit

 

History

History
80 lines (56 loc) · 4.4 KB

exit-status.md

File metadata and controls

80 lines (56 loc) · 4.4 KB
description
هر برنامه‌ای که اجرا می‌شود پس از اتمام یک کد بر میگردونه که به عنوان exit code شناخته می‌شه و بر این اساس میتونیم مطمئن بشیم که برنامه درست اجرا شده یا به خطا خورده و اگر خطا داشته چه نوع خطایی داشته

Exit status

دیدین بعضی وقتا یه کامند رو اشتباه میزنین و بعدش تو صفحه ترمینالتون بهتون یه اروری میده؟ مثل عکس زیر

خروجیای اشتباه کامند

خب بعد از اینکه یه کامند اجرا شد میتونین ببینین چه عددی برگردونده؛ اگه کامند ?$ echo رو بزنین بهتون اگزیت کد دستور قبلی رو برمیگردونه.

تو عکس بالا بار اول اگزیت کد برنامه‌ی yes که با ctrl+c لغو شده رو میبنیم و بعدش هم دفعه دوم اگزیت کد همون ?$ echo اولی که اجرا شده رو نشون میده

خب تنها چیزی که لازم میدونم بهش اشاره کنم و بدونین اینه که اگه اگزیت‌کد صفر بود ینی درست اجرا شده و هر چیز بجز آن یعنی برنامه حین اجرا به اروری خورده که هر عدد متناظر یک اروره پس لازمه برین بخونین ببینین اگه چه عددی برگردونده شد به چه معنیه... یه سری کدای مهم رو براتون اوردم:

معنی کد عدد به انگلیسی معنی عدد کد به فارسی عدد کد
Success موفقیت 0
General error خطای عمومی 1
Misuse of shell builtins (e.g., invalid options, etc.) استفاده نادرست از ساختارهای شل (مثالا گزینه‌های نامعتبر) 2
Command invoked cannot execute کامند نمی‌تواند اجرا شود 126
"command not found" error خطای "command not found". 127
Invalid argument to exit آرگومان برای خروج نامعتبره 128
Script terminated by ctrl+c اسکریپت توسط ctrl+c خاتمه یافته 130
Exit status out of range خروج از وضعیت خارج از محدوده 255

نکته: اگزیت‌کد یقینا عددی بین 0 تا 255 خواهد بود

چگونه خودمون برنامه‌ای بنویسیم که اگزیت‌کدی متفاوت تولید کنه؟

کد پایین به زبان پایتون نوشته شده که یه ورودی از شما میگیره و با همون ورودی اگزیت میکنه

#!/usr/bin/env python
from sys import exit
def main():
    n = int(input("Enter a number to specify exit code: "))%256
    exit(n)


if __name__ == "__main__":
    main()

کد بعدی هم به زبان c نوشته شده.

#include <stdio.h>

int main(void)
{
    int n = 0;
    printf("Enter a number to specify exit code: ");
    scanf("%d", &n);
    n%=256;
    return n;
}

کد بعدی هم به زبان bash نوشته شده.

#!/bin/bash

echo "Enter a number to specify exit code: "
read n

exit $n

من با این سه تا زبان اوکیم و اینها و میشه گفت تو هر زبان برنامه‌نویسی و اسکریپت‌نویسی چنین چیزی هست و شما با توجه به منطق برنامتون میتونین مشخص کنین که چطور کار کنه.