LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1336|回复: 5

我作的练习,请兄弟们指正

[复制链接]
发表于 2003-1-26 22:08:15 | 显示全部楼层 |阅读模式
  1. [javalee@Linux javalee]$ cat show
  2. #! /bin/bash
  3. echo "开始检查${1}......"
  4. sleep 5
  5. if [[ -f ${1} ]]
  6. then
  7.     if [[ -x ${1} ]]
  8.     then
  9.     echo -n "${1}是可执行脚本文件,是否查看文件内容?(y/n)"
  10.     read input
  11.     case $input in
  12.         y)      echo "文件列表:";ls -l ${1};echo "文件内容:";cat ${1} ;;
  13.         *)      break ;;
  14.     esac
  15.     else
  16.         echo "文件列表:";ls -l ${1};echo "文件内容:";cat ${1}
  17.     fi
  18. else
  19.     echo "${1}:不是规则文件."
  20. fi
  21. if [[ -d ${1} ]]
  22. then
  23. echo -n "$1是目录,是否查看他的内容?(y/n)"
  24. read input1
  25. case $input1 in
  26. y)      echo "${1}目录内容:" ; ls -l ${1} ;;
  27. *)      break ;;
  28. esac
  29. fi
  30. [javalee@Linux javalee]$
复制代码
发表于 2003-1-26 22:21:30 | 显示全部楼层
怎么没有缩进呀,要在代码前后加上[CODE][/CODE]
发表于 2003-1-28 10:22:38 | 显示全部楼层
今天仔细看了这个程序,觉得结构上有些不妥。比如说这段:

echo -n "${1}是可执行脚本文件,是否查看文件内容?(y/n)"
read input
case $input in
y) echo "文件列表:";ls -l ${1};echo "文件内容:";cat ${1} ;;
*) break ;;
esac

实际上只是要在回答"y"的时候,显示一下脚本文件内容。又不是多项选择,用case/esac结构实在是多此一举。可以改成这样:

  1. echo -n "${1}是可执行脚本文件,是否查看文件内容?(y/n)"
  2. read input &&
  3. [ $input -eq y ] && {
  4.     echo "文件列表:"
  5.            ls -l ${1}
  6.     echo "文件内容:"
  7.            cat ${1}
  8. }
复制代码
 楼主| 发表于 2003-1-28 11:32:37 | 显示全部楼层
谢谢~,我也觉得结构有些混乱,,,
不过用case语句的目的我是想练习而已.
我再试试
发表于 2003-1-31 18:16:11 | 显示全部楼层
还有就是个人认为 $1 的文件路径要区分 绝对和相对 路径
 楼主| 发表于 2003-2-1 00:55:09 | 显示全部楼层
谢谢~;)
你的意思是不是要设定环境?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表