脚本建立
-
脚本开头(脚本第一行)
指出由哪个程序(解释器)来执行脚本中的内容
#!/bin/bash 或 #!/bin/sh
#!:称为幻数,执行bash脚本的时候,内核会根据它来确定用哪个程序来解释脚本中的内容。
此项必须在脚本文件中顶端的第一行,如果不是第一行则为注释
如果开头不指定解释器,那执行的时候需要用对应的解释器来执行脚本。
eg: bash test.sh -
脚本注释
跟在(#)后面的内容
脚本执行
当shell脚本以非交互式方式运行时,会先查找环境变量ENV,该变量指定了一个环境文件(通常是:.bashrc),然后从该环境变量文件开始执行。当读取了ENV文件后,SHELL才开始执行shell脚本中的Neri
执行方法:
- bash script-name 或 sh script-name
当脚本文件本事没有可执行权限或者文件开头没有添加解释器(#!/bin/sh)常用此类方法执行
- path/script-name 或 ./script-name (当前路径下执行)
需要先将脚本文件权限改为可执行(chmod u+x script-name),然后通过此方法执行脚本
- source script-name 或 .script-name
使用source和(.)号读入或加载指定的shell脚本文件,可以将子shell脚本中的变量的值或函数等的返回值传递到当前父shell脚本中使用
脚本开发基本规范及习惯
-
开头指定脚本解释器
#!/bin/sh 或#!/bin/bash
-
开头加版本版权等描述信息
#Date: 2019-11-05 17:06 #Author: silly #Mail: silly8543@163.com #Version: 1.0.1 #Functions: 功能描述
-
脚本中不用中文注释
尽量用英文注释,防止本机或切换系统环境后中文乱码带来的问题
-
脚本以.sh为扩展名
script-name.sh
-
代码书写优秀习惯
>1.成对内容一次写完,防止遗漏:{}、[] 、’ ’ 、" "
>2.[]中括号两端要有空格
>3.流程控制语句一次书写完,在添加内容 -
通过缩进增加代码可读性