文章会有【原创】或者【转载】标示,部分来自Google Baidu的学习结果 {Java/PHP/Python/Ruby/Go}

shell编程技巧小结-2  


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解决
                      
  1. export LC_CTYPE=en_US.UTF-8       #脚本中的解决方法

  2. LANG=en_US.UTF8                   #crontab中的解决方法

3、使用递归,由于递归的范围很广,这里只是简单的shell中使用递归的举例

  1. CheckInput(){                     #检查GenInput的输入的合理性的函数

  2.         GenInput                  #这是一个接受用户输入的函数
  3.         cat install.log           #用户的输入存放在这个install.log文件中
  4.         read -p "检查输入是否正确(y/n):" Anwser

  5.         case $Anwser in           #判断输入的是y还是n

  6.                 y|Y) true;;       #如果用户经过检查正确后,什么也不做,执行后面的代码

  7.                 n|N) CheckInput;; #如果用户发现上次的输入有误,则这里进行自己调用自己实现递归

  8.         esac

  9. }

4、使用test对字符串为空串进行判定

  1. test -z $string                   #$string为空串返回true
  2. test -n $string                   #$string为空串返回false

5、使用convert命令(由Imagemagic软件包提供)对图像进行压缩

  1. convert  org.jpg  --quality  60  new.jpg #将图片org.jpg 的质量压缩到原来质量的60%,新生成的图片为new.jpg

…… ^_^ 经常遇到朋友叫帮忙压缩图片质量,因为他们使用的是PS,对电脑内存要求较高,后来发现linux下进行图片质量压缩很方便,当然convert的功能很多,包括转换格式,插入说明文字等等,在脚本中使用的话可以批量处理图片

6、linux下的操作快捷方式(这个应该不属于shell变成范畴)

  1. cd -                              #回到上次所在目录
  2. !str                              #直接使用距离当前最近的一个以str开头的并且执行了的命令
这次是这个系列的第二篇,未完待续....

版权声明: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。