shell编程技巧小结(二)

发布时间:2020-06-05编辑:脚本学堂
shell编程技巧小结(二)

1、开发功能复杂、代码数量很大的脚本时,使用 source 命令,以将多个功能模块组合起来,增加脚本的可读性。

例子
Bash.file为一个脚本,内容如下
.....
source scripts/InstallSoftware.sh
source scripts/Module.sh
source scripts/var.sh
......
......

通过这种形式将目录scripts下的三个脚本调用进来,在脚本的下面就可以利用调用进来的脚本里面的函数和变量了。

2、在脚本或者crontab中使用svn,出现“.....utf8,can't convert”错误时,可以临时设定本地的LC_CTYPE解决              
    export LC_CTYPE=en_US.UTF-8       #脚本中的解决方法
    LANG=en_US.UTF8                   #crontab中的解决方法

3、使用递归,由于递归的范围很广,这里只是简单的shell中使用递归的举例
    CheckInput(){                     #检查GenInput的输入的合理性的函数
            GenInput                  #这是一个接受用户输入的函数
            cat install.log           #用户的输入存放在这个install.log文件中
            read -p "检查输入是否正确(y/n):" Anwser

            case $Anwser in           #判断输入的是y还是n
                    y|Y) true;;       #如果用户经过检查正确后,什么也不做,执行后面的代码
                    n|N) CheckInput;; #如果用户发现上次的输入有误,则这里进行自己调用自己实现递归
            esac
    }

4、使用test对字符串为空串进行判定
    test -z $string                   #$string为空串返回true
    test -n $string                   #$string为空串返回false

5、使用convert命令(由Imagemagic软件包提供)对图像进行压缩
    convert  org.jpg  --quality  60  new.jpg #将图片org.jpg 的质量压缩到原来质量的60%,新生成的图片为new.jpg
…… ^_^ 经常遇到朋友叫帮忙压缩图片质量,因为他们使用的是PS,对电脑内存要求较高,后来发现linux下进行图片质量压缩很方便,当然convert的功能很多,包括

转换格式,插入说明文字等等,在脚本中使用的话可以批量处理图片。

6、linux下的操作快捷方式(这个应该不属于shell变成范畴)
    cd -                              #回到上次所在目录
    !str                              #直接使用距离当前最近的一个以str开头的并且执行了的命令
请继续关注本系列文章,未完待续...