第一章 基础
shell的优点在于处理操做系统底层的业务,
Python,php的优点在于开发运维工具,web界面的管理工具以及web业务开发。
处理一键安装、优化、报警脚本
shell又叫命令解释器,它能识别用户输入的各类命令,并传递给操做系统,
Linux系统默认的shell是bash。
脚本的创建:
脚本开头第一行 #!/bin/bash 或 #!/bin/sh
#!又称为幻数,在执行bash脚本的时候,内核会根据“#!后的解释器来肯定该用哪一个程序解释脚本中的内容
若是不设置,则为系统默认的解释器(为bash)
后面的行有#!表示注释。
用 bash test.sh 执行
脚本注释:
跟在#后面内容表示注释,对脚本进行说明。
用:<<BLOCK BLOCK结构注释,注释内容比较长时避免每一行都要写#
将BLOCK之间的代码重定向到一个不存在的命令,从而实现了多行注释。
脚本执行:
当shell脚本以非交互方式(文件方式)运行时,会先查找环境变量ENV中的内容,该变量制定了一个环境文件(一般是.bashrc .bash_profile /etc/bashrc /etc/profile等),而后从该环境变量文件开始执行,当读取了ENV文件后,shell才开始执行shell脚本中的内容。
crond 任务时把系统环境变量在脚本中从新定义!
shell脚本的执行一般能够采用如下三种方式:
一、bash script-name 或 sh script-name
二、path/script-name 或 ./script-name(当前路径下执行脚本)
三、source script-name 或 . script-name
执行说明:
第一种方法是当前脚本没有可执行权限时使用的方法
第二种须要先将脚本文件的权限改成可执行权限(chmod u+x script-name 或 chmod 755 script-name)
第三种方法是使用source或“.”点号读入或加载指定的脚本文件而后,依次执行指定shell脚本的中的全部语句。php
这种方法能够将执行脚本中的变量和函数带到当前的shell中
相似于函数调用,脚本第二行应该写source或 . (而不是bash)则能够嵌套调用
步骤:
在vim /etc/init.d/functions里面能够本身写函数
own(){
echo"hhhh"
}
而后在3.sh 里面写
#!/bin/sh
source /etc/init.d/functions
own
而后执行3.sh (输入命令sh 3.sh) 则结果为hhhh
#[]中括号两端要有空格[ hhhhh ]
脚本参数:
$n 表示传递给脚本的第n个参数,即$1表示第一个参数。
$# 命令行参数的个数(不包括$0,即排除脚本的名称)
$0 当前脚本的名称
$* 以参数1 参数2 ……的形式返回全部参数的值
$@ 以参数1,参数2,……的形式返回全部参数的值
$_ 保存以前执行的命令的最后一个数
另外,用户传递的参数数量多于9个时,不能使用$10来引用第10个参数,应先保存$1的值,而后使用shift命令删除参数1,此时$10就变成了$9,$#的值将被更新以反应参数的剩余数量。web