实现一个shell命令

首先创建一个 main.c 文件(/home/tom/demon),该文件实现加法运算,代码如下:

#include <stdio.h>
#include <unistd.h>
#include <getopt.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
    int start = 0;
    int end = 0;
    int sum = 0;
    int opt;
    char *optstring = ":s:e:";

    while((opt = getopt(argc, argv, optstring))!= -1){
        switch(opt){
            case 's': start = atoi(optarg); break;
            case 'e': end = atoi(optarg); break;
            case ':': puts("Missing parameter"); exit(1);
        }
    }
    
    if(start<0 || end<=start){
        puts("Parameter error"); exit(2);
    }
    
    for(int i=start; i<=end; i++){
        sum+=i;
    }
    printf("%d\n", sum);

    return 0;
}

 

然后,生成该源文件的可执行文件 getsum.out ,相关 gcc 编译指令如下

gcc main.c -o getsum.out    # 此时生成的可执行文件位于 /home/tom/demon

 

将该可执行文件的路径加入 shell 的配置文件 ~/.bashrc 中,即

PATH=$PATH:$HOME/demon

 

接下来就可以直接执行该 shell 命令(getsum)

getsum.out -s 1 -e 100  # 执行 1 到 100 的加法

 

结果为:5050

posted @ 2022-10-23 23:59  皮卡啰  阅读(39)  评论(0)    收藏  举报