Linux学习-shell script

写 shell script 过程中一些注意点!

注意点

  1. #!/bin/bash 这一句可以通知shell使用bash程序运行脚本,并且加载bash的相关环境配置(一般来说就是non-login shell的~/.bashrc)。
  2. 普通的运行脚本文件的方式都是把脚本放在子程序中运行,脚本运行完毕,脚本里面定义的变量将不再存在了。但是使用source sh001.sh这种方式运行的话,会把脚本放在父程序中运行,即使脚本运行完毕,里面定义的一些变量仍然存在的。
  3. test测试命令功能有:文件类型测试、文件权限测试、文件属性(如最后修改时间等)测试、整数比较测试、字符串比较测试、多重条件测试、条件取反测试。。。太多功能,这里贴教程传送门:test-传送门
  4. 中括号 “[]” 也可以用于条件测试,不过语法感觉有点恶心,设计优良的Linux为什么没有在这些地方设计成语法简单易用呢?还是传送门:[]-传送门
  5. 一些预定义变量名称:

    1
    2
    3
    4
    5
    6
    /path/to/scriptname opt1 opt2 opt3 opt4
    $0(scriptname) $1 $2 $3 $4
    $# : 参数个数,这里是4
    $@ : 代表 "$1" "$2" "$3" "$4"
    $* : 代表 "$1 $2 $3 $4"
  6. 变量偏移命令 shift ,这玩意有用吗?还是传送门:shift-传送门

  7. 条件判断语法:if…then,case…esac
  8. 循环:while…do…done,until…do…done,for…do…done
  9. 函数:function,内部有自己的$0,$1,$2…与脚本的这些变量并不相同

调试

1
2
3
4
5
sh [-nvx] scripts.sh
选项与参数:
-n : 不运行scripts.sh,只检查语法问题
-v : 在运行scripts.sh之前将其内容输出
-x : 将运行过程中运行的语句输出