分页: 1 / 1

[原创]查找文件绝对路径的练习脚本

发表于 : 2006-10-16 15:34
aBiNg
$cd ~/sripts
$gedit abspath

代码: 全选

#! /bin/bash
#File Name: ~/scripts/abspath
#Author:     helo_aBiNg
#Written:    06.10.16
#
if test $# != 1
    then
           echo "Usage: abspath [one file]"
           exit 1
     else   
           sub_path=(`find $(pwd) -name $1`)     #数组赋值
fi
N=${#sub_path[*]}     #数组维数
if [ $N = 0 ]
     then
            echo "result: No such file in current directory"
            exit 1
     else
            m=0
            while test ${#sub_path[*]} != $m && test -f ${sub_path[m]}     #判断不同路径相同文件名输出次数,并排除同名文件夹
            do        
                echo "${sub_path[m]}"
                m=`expr $m + 1`
            done
fi
exit 0
Save it!
$chmod +x ~/sripts/abspath
$sudo ln -s ~/sripts/abspath /usr/bin/

Try to run it:
$cd /usr
$abspath beryl
>/usr/bin/beryl

发表于 : 2006-10-17 15:51
eexpress
不如locate和type :lol:

发表于 : 2006-10-17 15:55
eexpress
不如locate和type :lol:

发表于 : 2006-10-17 19:23
aBiNg
eexpress 写了:不如locate和type :lol:
还有:
$find $(pwd) -name xxx

练习嘛,没实际意义的... :lol:

发表于 : 2006-10-17 19:38
eexpress
:lol:
不如这样简单。
[ -z $1 ] && echo “xxxx” && exit 1;

发表于 : 2006-10-18 14:14
aBiNg
eexpress 写了::lol:
不如这样简单。
[ -z $1 ] && echo “xxxx” && exit 1;
这个是什么道理呢? :roll:

发表于 : 2006-10-21 19:42
Guo R.H

代码: 全选

[ -z $1 ] && echo "Usage : [filename]"  && exit 1 
  sub_path=(`find $(pwd) -name $1 `)
 N=${#sub_path[*]}     #数组维数 
  [ $N = 0 ] && echo "result: No such file in current directory" && exit 1
   m=0 
   while test ${#sub_path[*]} != $m && test -f ${sub_path[m]}    
   do        
       echo "${sub_path[m]}" 
             m=`expr $m + 1` 
  done 
 exit 0

发表于 : 2006-11-06 10:59
Zelgadiss
我没有看懂具体是什么意思....

如果是要遍历的话,为什么不用递归函数呢?
例如:

代码: 全选

fun()
{
        local i
        local path=$PWD
        for i in `ls`;do
                if [ -d $i ] ;then
                        cd $i
                        fun
                        cd $path
                else
                        command $i
                fi
        done
}
如果不是遍历结构的话,那么都有对应命令的吧.....