shell脚本学习基础必知必会
shell是操作系统的最外层。shell合并编程语言以控制进程和文件,以及启动和控制其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。Shell是用户与Linux操作系统之间沟通的桥梁。用户可以输入命令执行,又可以利用 Shell脚本编程去运行。随着Linux企业应用越来越多,维护Linux日常工作频繁,所以如果单靠手工去敲打命令是非常困难的,所以学会熟练使用SHELL编程是每个Linux SA必备的功课。Linux Shell种类非常多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh)等。不同的Shell语言的语法有所不同,所以不能交换使用。最常用的shell是Bash,也就是Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用,也是大多数Linux系统默认的Shell。接下来我们来写一个简单的shell脚本。(shell脚本一般文件名以.sh结尾,同时文件第一行定义该脚本为shell脚本)vi first_shell.sh#!/bin/bash#This is my First shellecho “Hello World ”这就是我们的第一个脚本,是不是很简单呢,注解如下:#!/bin/bash //表示定义该脚本是一个shell脚本(固定格式)。#This is my First shell //这里的#号属于注解,没有任何的意义,SHELL不会解析它。echo “Hello World ” //shell脚本主命令,我们执行这个脚本讲看到: Hello World ! 信息。脚本编写完毕,如何来执行呢,首先执行shell脚本需要执行权限,赋予执行权限:chmod o+x first_shell.sh 然后./first_shell.sh执行即可;也可以直接使用命令执行: /bin/sh first_shell.sh,显示效果一样。4.1. 1 Shell变量设置Shell编程语言是非类型的解释型语言,不像C++/JAVA语言编程时需要事先声明变量,SHELL给一个变量赋值,实际上就是定义了变量,在Linux支持的所有shell中,都可以用赋值符号(=)为变量赋值。SHELL变量可分为两类:局部变量和环境变量。局部变量只在创建它们的shell脚本中使用。而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用shell变量。例如在脚本里面定义A=123 ,定义这样一个变量,前面变量名,后面是变量的值。引用变量可以使用$A,把变量放在脚本里面会出现什么样的效果呢?如下:#!/bin/bash#Author wugk 2014-06-10A=123echo “Printf variables equal is $A”执行脚本:sh test.sh,结果将会显示:Printf variables equal is 123简单的理解变量,相当于定义一个别名-名称,引用的时候加上$符号就可以了。例如定义变量 name=wuguangke 执行echo $name 将会显示wuguangke SHELL常见的系统变量解析:$0 当前程序的名称$n 当前程序的第n个参数,n=1,2,…9$* 当前程序的所有参数(不包括程序本身)$# 当前程序的参数个数(不包括程序本身)$? 命令或程序执行完后的状态,一般返回0表示执行成功。$UID 当前用户的ID$PWD 当前所在的目录