Shell命令编写——shell的雏形

本文介绍了一种通过输入代码来处理并执行命令行参数的方法,包括如何接收参数输入、解析参数并调用相应的命令执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
#include <stdio.h>
#include <signal.h>
#include <string.h>
#include <stdlib.h>

//命令行的参数个数
#define MAXARGS 20
//长度
#define ARGLEN  100

int main(){

 
 char *arglist[MAXARGS+1];
 int  numargs;
 char argbuf[ARGLEN];
 char *makestring();

 numargs =0 ;
 while(numargs<MAXARGS)
 {
  printf("Arg[%d]{1}quot;,numargs);

  if(fgets(argbuf,ARGLEN,stdin)&&*argbuf!='\n')
   arglist[numargs++]=makestring(argbuf);
  else{
   if(numargs>0){
    arglist[numargs]=NULL;
    execute(arglist);
    numargs = 0;
   }
  }
 
 }


 return 0;
}

int execute(char *arglist[]){
 
 execvp(arglist[0],arglist);
 perror("execvp failed");
 exit(1);
}

char *makestring(char *buf){
 
 char *cp;

 buf[strlen(buf)-1]='\0';
 cp =(char *)malloc(strlen(buf)+1);
 if(cp == NULL){
  fprintf(stderr,"no memory\n");
  exit(1);
 }

 strcpy(cp,buf);
 return cp;

}


 

### 启动 Python 交互式终端的方法 #### Windows 操作系统 在 Windows 上,可以通过以下方法启动 Python 交互式终端: 1. 打开命令提示符(Command Prompt)。这可以通过按下 `Win + R` 键组合,在弹出的运行对话框中输入 `cmd` 并回车来完成。 2. 输入 `python` 或者 `py` 命令并按 Enter 键。如果安装了多个版本的 Python,则可能需要使用特定的命令,例如 `py -3.x` 来指定所需的 Python 版本[^1]。 #### macOS 和 Linux 操作系统 对于基于 Unix 的操作系统(macOS 和 Linux),操作如下: 1. 打开终端应用程序。在 macOS 中,通常可以从“应用程序 -> 实用工具”找到 Terminal;而在大多数 Linux 发行版中,默认快捷键可能是 `Ctrl + Alt + T`。 2. 在终端中直接输入 `python3` (推荐用于 Python 3)或仅输入 `python` 如果默认指向的是 Python 3 版本。 一旦成功进入 Python Shell,会看到类似于这样的提示符: ```bash >>> ``` 此时就可以在此环境中编写和测试单行或多行代码片段了。 另外,如果您希望集成更高级的功能到编辑器里,比如 Sublime Text 配置支持 Ctrl+B 快捷键调起内置终端执行脚本的话,可以按照之前提到的方式调整用户自定义构建文件[^2]: ```json { "target": "terminus_exec", "cancel": {"kill": true}, "shell_cmd": "python -u \"$file\"", "file_regex": "^...([^\\s]+)...$", "selector": "source.python", "env": {"PYTHONIOENCODING": "utf-8"}, "working_dir": "${project_path:${folder}}" } ``` 这段 JSON 数据展示了如何设置一个基本的支持 UTF-8 编码输出以及自动切换至当前项目路径作为工作目录的配置方案。 还有另一种选择是利用专门设计用来增强命令行体验的库来自定义开发自己的 CLI 工具。例如通过继承标准模块 cmd 下 Cmd 类创建个性化的 REPL (Read-Eval-Print Loop)[^3]: ```python import cmd class MyShell(cmd.Cmd): intro = 'Welcome to the custom shell. Type help or ? to list commands.\n' prompt = '> ' def do_greet(self, arg): """Greet the person""" print(f"Hello {arg}") def do_EOF(self, line): return True if __name__ == '__main__': MyShell().cmdloop() ``` 以上示例演示了一个简单的定制化控制台应用雏形,其中包含了两个主要功能——打印欢迎消息与响应退出信号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值