如何制作一个自己的shell命令。

tchqiq 2015-04-06 10:03:18

linux自带了许多好用的命令 比如 find grep sort 等。我现在想写个自己的命令用该怎么办呢?
命令:checkuniq
作用:检查文本是否有重复记录
返回:第一个检查到底重复记录

命令格式:checkuniq -d "," -f 1 filename
解释:-d选项为分割符,默认为\t,如果不加-d选项则使用默认分隔符。
-f为指定列号,即为指定检查某列是否有重复值,如果不加则默认为整行检查。
filename为指定的检查的文件名。
其中-d、-f两个是可用可不用的选项。并且两个选项位置可用改变,就像平常使用的linux命令那样。
请问这个如何实现?
可以在已有的命令基础上再写一个脚本~但好像比较复杂啊~尤其是怎么判断命令行参数的有无或者位置~
有没有高手可以解答一下?
...全文
500 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
__威少__ 2015-04-17
  • 打赏
  • 举报
回复
1:自己写代码实现,编译成可以执行文件,然后把可执行文件的路径放在path下; 2:编写成一个脚本,同样也要把脚本路径放在path下 针对所谓的参数,就是要在你的代码里进行相应的检查和不同参数不同操作。
iasky 2015-04-17
  • 打赏
  • 举报
回复
这些命令都是C语言的,有源代码,可以网上下载看看。
CaspianSea 2015-04-16
  • 打赏
  • 举报
回复
命令行参数的解析,可以使用getopt()函数。 另外,linux 的命令, find, sort, 都是可以看到源码的,你可以下载一份源码,看看它们是如何实现的
枫叶雪 2015-04-07
  • 打赏
  • 举报
回复
用C写个程序,编译出来就是啦。main函数的参数,就是你在运行时提供的参数。 也可以写脚本。命令行提供的参数,在脚本里是$1, $2等等。 实现可有可无的选项,就需要你在脚本/代码里自己判断了,就像: if (0 == strcmp(argv[1], "-d") //... else //...
oathupdate 2015-04-07
  • 打赏
  • 举报
回复
用脚本可以实现, 比如find / -name text 你可以在find脚本中穿进去后面那几个参数。 然后在环境变量中增加当前目录下的环境变量就可以像运行系统命令那样了。
buyong 2015-04-07
  • 打赏
  • 举报
回复
先实现这个功能。不论你用什么。然后把这个程序的路径加到path里。
奔跑的路 2015-04-07
  • 打赏
  • 举报
回复
可以使用脚本实现,列的重复值检查好实现,但是行的重复值检查的判断依据是什么,比如11 = 11 , 这也算重复值吗
奔跑的路 2015-04-07
  • 打赏
  • 举报
回复
可以使用脚本实现,列的重复值检查好实现,但是行的重复值检查的判断依据是什么,比如11 = 11 , 这也算重复值吗
ljc007 2015-04-07
  • 打赏
  • 举报
回复
引用
可以在已有的命令基础上再写一个脚本~但好像比较复杂啊~尤其是怎么判断命令行参数的有无或者位置
可以使用 getopts 命令,so easy,你先试试吧

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧