Linux下使用 C语言自己封装一个 echo 命令的函数
要求:将该函数封装到环境变量中,并起一个别的名字
#include <stdio.h>
#include <string.h>
int main(int argv,char* argc[])
{
int i;
int j;
int len; //接收main函数后每个参数的长度
char *p;//用来指向char数组中某个下标的地址
char a[len];//定义一个len长度的char数组
//实现echo -n功能
if(strcmp(argc[1],"-n")==0){
for(i=2;i<argv;i++){
printf("%s ",argc[i]);
if(i==argv-2){
printf("%s",argc[argv-1]);
break;
}
}
//实现echo -e功能
}else if(strcmp(argc[1],"-e")==0){
for(i=0;i<len;i++){
a[i]=argc[argv-1][i];
}
for(j=2;j<argv;j++){
len=strlen(argc[j]);
for(i=0;i<len;i++){
p=&a[i];
if(a[i]=='\\'){
if(a[i+1]=='n'){
a[i]='\n';
i++;
}else if(a[i+1]=='a'){
a[i]='\a';
i++;
}else if(a[i+1]=='b'){
a[i]='\b';
i++;
}else if(a[i+1]=='f'){
a[i]='\f';
i++;
}else if(a[i+1]=='r'){
a[i]='\r';
i++;
}else if(a[i+1]=='t'){
a[i]='\t';
i++;
}else if(a[i+1]=='\\'){
a[i]='\\';
i++;
}
}
printf("%c",*p);
}
printf(" ");
}
printf("\n");
}else{//实现echo 功能
for(i=1;i<argv;i++){
printf("%s ",argc[i]);
if(i==argv-2){
printf("%s\n",argc[argv-1]);
break;
}
}
}
return 0;
}
将代码编译成myecho.out文件后,改名为myecho(因为linux下的可执行文件是忽略后缀名的)
添加到环境变量中
cd ~ 去到home目录
ls -la 列出所有在home下的文件及文件夹
vim bashrc 进入到文件中
找到home目录下的.bashrc文件
然后在文件内找到相应的位置输入
alias myecho = '这里写入你可执行文件的绝对地址',如: /home/youyou/workspace/task/t2/myecho
然后保存文件,退出到终端
source .bashrc
在终端中输入这个命令可以快速刷新文件
然后就可以在终端的任意位置正常使用自己编写的myecho命令了。