心得: 所谓有用就是学会了一直在使用,不经常用叫没多大用,忘记了就叫没用。反过来想想经常挨领导批的很有可能是领导对你有很大的期望。所以我们学会的东西要经常用到实际中去才是自己的东西。
其实学习的最好方法就是先接触实际的东西,用实践来验证理论。
写脚本编写要求证,可以一边测试一边写(中间最好有个输出标记看到哪儿错了)。
下面的例子在林夕昱老师的视频里看到的,自己为了练习在centos的系统下默写下来了,可能是刚学吧,总是写下来执行后得到好多提示(当然了这些提示是错误信息的了,不过对我这个初学者挺有帮助的,希望初学者看过林老师的视频知道思路后一定要自己试着写下来练习才是)。在这里想通过自己看过视频后做个笔记吧,也是帮助自己更快进步。废话不说了,看例子吧
example 1:该脚本是让用户输入目录,然后脚本会先判断是不是目录或为空否,如是目录会先列出目录下的文件,然后一个一个判断文件的类型,在判断文件的权限。最后列出用户输入目录下的文件的类型和权限。
- #!/bin/bash
- #program:use for to display a directory's filetype and permission
- #history:2013-02-20 ASK first release
- PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
- export PATH
- read -p "please you input a directory:" dir
- if [ -z "$dir" -o ! -d "$dir" ]; then
- echo "you have input nothing or $dir is NOT a directory"
- exit 0
- fi
- filen=`ls $dir`
- for filename in $filen
- do
- [ -c $dir/$filename ] && filetype="is character file"
- [ -p $dir/$filename ] && filetype="is PIPE file"
- [ -f $dir/$filename ] && filetype="is regular file"
- [ -L $dir/$filename ] && filetype="is link file"
- [ -S $dir/$filename ] && filetype="is sokkt file"
- [ -d $dir/$filename ] && filetype="is directory"
- [ -b $dir/$filename ] && filetype="is block file"
- [ -r $dir/$filename ] && per="$per readable"
- [ -w $dir/$filename ] && per="$per writeable"
- [ -o $dir/$filename ] && per="$per executable"
- [ -u $dir/$filename ] && per="$per set UID"
- [ -g $dir/$filename ] && per="$per set GID"
- [ -k $dir/$filename ] && per="$per set Sticky bit"
- echo "this file $dir/$filename is $filetype ,and permission is $per "
- filetype=""
- per=""
- done
|
注释:
第一行是该shell脚本运行的环境,可以不用写。运行环境很多,有/bin/awk -f的还有其他的。
第二行是该脚本的信息说明干什么用的。一般shell脚本中以#开头的都是注释行,shell不会去执行的。
第三行也是脚本的一些信息,写明日期和作者,还有版本信息。
第四行就是指该脚本运行的路径了。比如脚本中的echo命令,这些命令一般要注明绝对路径的。路经有好多写明最主要的那个。
第五行就是使用export命令让路径在全局环境中生效了,而不仅是当前用户的当前shell环境。
**************以上的这几行都是一些准备工作,不过最好养成好的习惯**************
第七行是使用read定义一个交互的变量。等待用户输入后read函数读取屏幕的值,并付给dir变量。双引号中的信息是出现在屏幕的提示信息。这个经常用到哦