shell脚本实例01

现在你已经看到shell脚本中各种循环的使用方法,来看一些实际应用的例子吧。循环是对系统数据进行迭代的常用方法,无论是目录中的文件还是文件中的数据。下面的一些例子演示了如何使用简单的循环来处理数据。

1.1 查找可执行的文件

    当你从命令行中运行一个程序你的时候,linux系统会搜索一系列目录来查找对应的文件,这些目录被定义在环境变量PATH中。如果你想找出系统中有哪些可执行文件可供使用,只需要扫描PATH环境变量中所有的目录就行了。如果要徒手查找的话,就得花点时间了。不过我们可以编写一个小小的脚本,轻而易举地搞定这件事。

    首先是创建一个for循环,对环境变量PATH中的目录进行迭代。处理的时候别忘了设置IFS分隔符。

   IFS=:

for folder in $PATH

do

现在你已经将各个目录存在在了变量¥folder中,可以使用另一个for循环来迭代特定目录的所有文件。

for file in $folder/*

do

最后一步是检查各个文件是否具有可执行权限,你可以使用if-then测试功能来实现。

if [ -x $file ]

then  

     echo "   $file"

fi

好了,搞定了!将这些代码片段组合成脚本就行了。

#! /bin/bash
# finding files in the PATH

IFS=:
for folder in $PATH
do
   echo "$folder:"
   for file in $folder/*
   do
      if [ -x $file ]
      then
         echo " $file"
      fi
   done
done
[root@ecs robin]# ./findforx.sh | more
/usr/lib64/qt-3.3/bin:
/usr/local/sbin:
/usr/local/bin:
 /usr/local/bin/docker-compose
/usr/sbin:
 /usr/sbin/accessdb
 /usr/sbin/addgnupghome
 /usr/sbin/addpart
 /usr/sbin/adduser
 /usr/sbin/agetty
 /usr/sbin/alternatives
 /usr/sbin/anacron
 /usr/sbin/applygnupgdefaults
 /usr/sbin/arp
 /usr/sbin/arpd
 /usr/sbin/arping
 /usr/sbin/atd
 /usr/sbin/atrun
 /usr/sbin/audispd
 /usr/sbin/auditctl
 /usr/sbin/auditd
 /usr/sbin/augenrules
 /usr/sbin/aureport
 /usr/sbin/ausearch
 /usr/sbin/authconfig
 /usr/sbin/authconfig-tui
...

输出显示了在环境变量PATH所包含的所有目录中找到的全部执行文件,数量真是不少!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值