当前位置:首页 > 开发 > 系统架构 > shell > 正文

linux shell ls脚本样例

发表于: 2015-06-11   作者:annan211   来源:转载   浏览:
摘要: #! /bin/sh - #查找输入文件的路径 #在查找路径下寻找一个或多个原始文件或文件模式 # 查找路径由特定的环境变量所定义 #标准输出所产生的结果 通常是查找路径下找到的每个文件的第一个实体的完整路径 # 或是filename :not found 的标准错误输出。 #如果文件没有找到 则退出码为0 #否则 即为找不到的文件个数 #语法 pathfind [--
#! /bin/sh -
#查找输入文件的路径
#在查找路径下寻找一个或多个原始文件或文件模式
# 查找路径由特定的环境变量所定义

#标准输出所产生的结果 通常是查找路径下找到的每个文件的第一个实体的完整路径
# 或是filename :not found 的标准错误输出。

#如果文件没有找到 则退出码为0
#否则 即为找不到的文件个数
#语法 pathfind [--all][--?][--help][--version] envvar pattern(s)

# 使用--all 选项时,在路径下的每个目录都会被查找
# 而不是停留在第一个找到的地方
IFS='
 	'

OLDPATH="$PATH"
 

PATH=/bin:/usr/bin
export PATH

error()
{
  echo "$@" 1>&2
  usage_and_exit 1
}

usage()
{
  echo "Usage:$PROGRAM [--all][--?][--help][--version]envvar pattern(s)"
}

usage_and_exit()
{
 usage
 exit $1
}

version()
{
 echo "$PROGRAM version $VERSION"
}

warning()
{
	echo "$@" 1>&2
	EXITCODE=`expr $EXITCODE + 1`
}

all=no
envvar=
EXITCODE=0
#basename会截去参数最后一个斜杠之前字串,返回剩下的部分
PROGRAM=`basename $0` 
VERSION=1.0

while test $# -gt 0
do

	case $1 in
	--all | --al | --a | -all | -al | -a )
		all=yes
		;;
	--help | --hel | --he | --h | '--?' | -help | -hel | -he | -h | '-?' )
		usage_and_exit 0
		;;
	--version | --versio | --versi | --vers | --ver | --ve | --v | \
	-version | -versio | -versi | -vers | -ver | -ve | -v )
		version
		exit 0
		;;
	-* )
		error "Unrecognized option: $1"
		;;
	* )
		break
		;;
	esac
	shift
done 

envvar="$1"
test $# -gt 0 && shift

test "x$envvar" = "xPATH" && envvar=OLDPATH

dirpath=`eval echo '${'"$envvar"'}' 2>/dev/null | tr : ' ' `
#为错误情况进行健全检查
if test -z "$envvar"
then
	error Environment variable missing or empty
elif test "x$dirpath" = "x$envvar"
then

	error "Broken sh on this platform: cannot expand $envvar"
elif test -z "$dirpath"
then

	error Empty directory search path
elif test $# -eq 0
then

	exit 0
fi

for pattern in "$@"
do 
	  result=
	  #echo $dirpath
	  for dir in $dirpath
	  do
	  
		for file in $dir/$pattern
		do 
						#echo $dir/$pattern
			
			if test -f "$file"
			then 
				result="$file"
				echo $result
				test "$all" = "no" && break 2
			fi
		done
	  done 
	 test -z "$result" && warning "$pattern:not found"
done 

test $EXITCODE -gt 125 && EXITCODE=125
exit $EXITCODE

linux shell ls脚本样例

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
转载请标明出处: http://blog.csdn.net/zwto1/article/details/45078837; 本文出自:【明月的博客
转载请标明出处: http://blog.csdn.net/zwto1/article/details/45111547; 本文出自:【明月的博客
Flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本
本文为解http://topic.csdn.net/u/20100602/09/c7890806-c197-4990-aa43-d7e50b42dc85.html所写 这
使用[[NSBundle mainBundle] appStoreReceiptURL]方式获取receipt (iOS7及以上获取receipt的方法)
1.使用JAVA程序直接访问ActiveMQ 1.1 发送消息 package com.activemq; import java.util.Date; impo
熟悉Linux的朋友们,对linux的命令,肯定都不陌生,大部分时候我们都可以使用系统自带的命令来轻松完
熟悉Linux的朋友们,对linux的命令,肯定都不陌生,大部分时候我们都可以使用系统自带的命令来轻松完
shell 内核介于使用者和kernel内核之间的接口,shell 壳保护内部的核kernel,使用shell编程类似于DO
《Linux命令行与shell脚本编程大全》 第一、二章 学习笔记博客分类: Linux命令行与shell脚本编程大
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号