本文中主要介绍了linu系统简单的shell脚本和bash编程for循环的用法。
1.shell脚本的基础介绍
简单点理解,shell就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。shell做为脚本语句有三大特定:1.不需编译,由解释器解释执行;2.弱类型:变量类型3.变量通常不需要事先声明。
常用的脚本语言有:bash,python,perl,ruby等。这里重点介绍bash。
2.bash编程之变量类型
bash是linux中最常用的脚本语言,他也是面向过程的脚本语言。在讲语法之前,首先要介绍一下bash的变量。
bash的变量类型一共有5种。
(1)本地变量
语法:set VAR_NAME=value
unset VAR_NAME
引用:${VAR_NAME}
作用范围:当前shell进程
(2)局部变量
语法:local VAR_NAME=value
unset VAR_NAME
引用:${VAR_NAME}
作用范围:在当前shell进程的局部范围内有效
(3)环境变量
语法:export VAR_NAME=value
unset VAR_NAME
引用:${VAR_NAME}
作用范围:当前shell及其子shell
(4)位置变量
如$1,$2等
(5)特殊变量
如$$,$?,$#,$@等
(6)变量名称的命名法则:
只能包含字母、数字和下划线;
不能以数字开头;
严格区分大小写;
要做到见名知义;
命名规范,风格统一。
3.bash脚本的基本说明
⑴bash脚本在编写完成之后可以用 #bash /path/tp/script_file.sh这种脚本语言类型+全路径的方式来执行。如果需要独立执行需要做到两点:1.要有独立的执行权限2.定义好shebang,即脚本的第一行:#!/path/to/explainer;例如#!/bin/bash或者#!/usr/bin/python。
⑵例如在/root/a.sh下的bash如果需要执行必须执行全路径的命令,即# /root/a.sh
而所有的命令都会到PATH环境变量所定义的路径下去查找,如果不想要每次执行都加上全路径,只需要加上export PATH=$PATH:/root即可。
⑶bash的配置文件分为两类:profile类和bashrc类。
profile类包括/etc/profile,/etc/profile.d/*.sh和~/.bash_profile。这些配置文件主要用来声明环境变量和执行程序或脚本。
bashrc类包括/etc/bashrc和~/.bashrc。这些配置文件主要用来定义本地变量和定义命令别名。
⑷脚本文件中,所有以#号开头的行均为注释行。
4.一个简单的脚本实例:添加用户和密码,密码同用户名。代码如下:
nano useradd.sh #!/bin/bash # Author:Luo # Date:2014-3-1 # Version:0.0.1 # Description:Add users UserName="user1" useradd $UserName echo $UserName | passwd --stdin $UserName > /dev/null echo "Add $UserName successfully" useradd user2 echo user2 | passwd --stdin user2 > /dev/null echo "Add user2 successfully" useradd user3 echo user3 | passwd --stdin user3 > /dev/null echo "Add user3 successfully" unset UserName
5.bash的调试方式
⑴检查脚本的语法错误;不真正执行脚本:
bash –n /path/to/script_file.sh
⑵调试执行脚本:
bash –x /path/to/script_file.sh