Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1638184
  • 博文数量: 292
  • 博客积分: 10791
  • 博客等级: 上将
  • 技术积分: 2479
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-20 21:06
文章分类

全部博文(292)

文章存档

2011年(31)

2010年(261)

分类: LINUX

2010-03-26 20:10:36

其实思路很简单,因为终端中的命令是通过PATH环境变量中的路径搜索的,只要在PATH路径下能找到的可执行文件都可以直接作为命令使用。

所以先echo $PATH;
找到所有路径,依次ls。
Shell[bash+rel4调试通过]代码:
var=`echo $PATH|sed "s/:/ /g"`
for list in $var;
do
ls -lR $list|grep -v '^d'
done
-EOF-
阅读(5794) | 评论(7) | 转发(0) |
0

上一篇:没有了

下一篇:Ubuntu下Apache配置网站根路径

给主人留下些什么吧!~~

dakuai_lv2014-07-09 16:48:09

一个命令即可,无需这么复杂--compgen

dbconf2010-03-28 18:45:13

[UPDATE]实现-v开关 cmlist.sh #!/bin/bash paralist=” while getopts “:v” opt; do case $opt in v) paralist=’l’ ;; :) echo “>>> Error: ‘-$OPTARG’ requires an argument” ;; ?) echo “>>> Error: ‘-$OPTARG’ not supported” ;; esac done var=`echo $PATH|sed “s/:/ /g”` for list in $var; do ls -R$paralist $list|grep -v ‘^d’ done 执行: 1、sh cmlist.sh [-v]

dbconf2010-03-28 18:44:54

[UPDATE]添加-v(verbose information)开关,显示命令的相关信息: cmlist.sh #!/bin/bash while getopts ":v" opt; do case $opt in v) var=`echo $PATH|sed "s/:/ /g"` for list in $var; do ls -lR $list|grep -v '^d' done ;; :) echo ">>> Error: '-$OPTARG' requires an argument" ;; ?) echo ">>> Error: '-$OPTARG' not supported" ;; esac done 执行: 1、sh cmlist.sh -v 2、. ./cmlist.sh -v

dbconf2010-03-28 18:44:33

#!/bin/bash var=`echo $PATH|sed “s/:/ /g”` for list in $var; do ls -lR $list|grep -v ‘^d’ done

dbconf2010-03-28 18:43:57

[UPDATE]去除不必要的信息: var=`echo $PATH|sed “s/:/ /g”` for list in $var; do ls -lR $list|grep ‘^[^d|total|\/]‘ done