一本shell编程书籍上的有bug的shell程序,看谁能找出问题所在。

   以下脚本是一本《linux命令、编辑器与shell编程》的书上的,是美国的Mark G Sobell著,脚本的功能是查找某个文件在指定的目录是否有硬连接。但是这个脚本有个小bug,只要你细心,应该可以发现。把你的结果跟帖给我吧。
#!/bin/bash
#Identify links to a file
#Usage: lnks file [directory]
if  [ $# -eq 0 -o $# -gt 2 ] ; 
 then 
  echo "Usage; lnks file [directory]" 1>&2
  exit 
fi
if [ -d "$1" ]; 
 then
  echo "First argument cannot be a directory." 1>&2
  echo "Usage: lnks file [directory]" 1>&2
 exit  
else
 file="$1"
fi
if [ $# -eq 1  ] ; 
 then
  directory="."
elif [ -d $2 ] ;
 then
  directory="$2"
else
  echo "Optional second argument must be a directory." 1>&2
  echo "Usage:lnks file [directory]" 1>&2
 exit 
fi
if [ ! -f "$file" ] ;
 then
  echo "lnks: $file not found or special file" 1>&2
 exit 
fi
set -- $(ls -l "$file")
linkcnt=$2
if [ "$linkcnt" -eq 1  ]; 
 then
  echo "Lnks: no other hard links to $file" 1>&2
 exit 
fi
set $(ls -i "file")
inode=$1
 echo "lnks:using find to search for links..." 1>&2
find "$directory" -xdev -inum $inode -print




本文转自 fenghao.cn 51CTO博客,原文链接:http://blog.51cto.com/linuxguest/132646,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值