Shell脚本编程
Posted 1128a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本编程相关的知识,希望对你有一定的参考价值。
一、什么是Shell以及类别
1.Shell定义
shell是操作系统的最外层,shell可以合并编程语言以控制进程和文件,以及启动和控制其他程序。简单来说,shell就是一个用户跟操作系统之间的一个命令解释器。
shell是用户与Linux操作系统之间沟通的桥梁,用户可以输入命令执行,又可以利用shell脚本编程去运行。
shell、shell编程、shell脚本、shell命令之间的区别:
shell是一个整体的概念,shell编程与shell脚本统称为shell编程,shell命令是shell编程底层具体的语句和实现方法。
2.shell的种类
bourne shell(/usr/bin/sh 或 /bin/sh)
bourbe again shell(/bin/bash)常用 易用免费
C shell(/usr/bin/csh)
K shell(/usr/bin/ksh)
shell for root(/sbin/sh)
二、初识Shell脚本
1.第一个脚本 “Hello world”
# !/bin/bash (固定格式,定义该脚本所使用的shell类型)
echo "Hello World" (shell脚本主命令,执行该脚本呈现的内容)
创建一个名为second.sh的脚本
内容为
# !/bin/bash
echo "she is so beautiful"
保存并执行chmod +x 命令使得该脚本有权限执行,然后./second.sh执行或者/bin/sh second.sh(脚本名)
如果运行该脚本,运行用户需要有执行权限,可以使用chmod +x +脚本名赋予可执行权限
*注意事项
(1)shell脚本名称命名一般为英文的大写、小写;
(2)不能使用特殊符号、空格来命名;
(3)shell脚本后缀以.sh结尾;
(4)不建议shell命名为纯数字,一般以脚本功能命名;
(5)shell脚本内容首行需以#!/bin/bash开头;
(6)shell脚本额中变量名称尽量使用大写字母,字母间不能使用“-”,可以使用“_”;
(7)shell脚本变量名称不能以数字、特殊符号开头;
2.shell变量
shell为弱类型语言,定义变量不需要声明类型,如果在使用中需要明确变量的类型,可以使用declare指定类型
shell编程中变量分为三种:系统变量、环境变量、用户变量。系统变量是在对参数判断和命令返回值是使用,环境变量主要是在程序运行时需要设置,用户变量又称为局部变量,多使用在shell脚本内部或者临时局部
(1)shell常见的系统变量如下:
$0:当前脚本的名称
$n:当前脚本的第n个参数,n=1,2,……,9
$*:当前脚本的所有参数(不包括程序本身)
$#:当前脚本的参数个数(不包括程序本身)
$?:命令或程序执行完后的状态,返回0表示执行成功
$$:程序本身的PID号。
(2)常见环境变量如下:
PATH:命令所示路径,以冒号为分割
HOME:打印用户家目录
SHELL:显示当前shell类型
USER:打印当前用户名
ID:打印当前用户ID信息
PWD:显示当前所在路径
TERM:打印当前终端类型
(3)用户变量如下:
A=jfedu.neta:自定义变量A
IP1=192.168.1.11:自定义变量IP1
*注意事项
shell变量名在定义时,首个字符必须为字母,不能以数字开头,中间不能有空格,可以使用下划线“_”,不能使用“-”,也不能使用标点符号。在所有shell中,可以直接使用赋值符号“=”为变量赋值。
创建一个var.sh 脚本,内容如下
# !/bin/bash
A=123
echo "Printf variables is $A"
结果如图所示
三、进一步了解shell脚本
1.if条件语句
表达式如下:
if(表达式)
语句1
else
语句2
fi
举例:
部分判断逻辑运算符:
-f:判断文件是否存在
-d:判断目录是否存在
-eq:等于,应用于整型比较
-ne:不等于,应用于整型比较
-z:控制付出
||:单方成立
if判断括号区别:
( ):用于多个命令组、命令替换、初始化数组
(( )):整数扩展、运算符、重定义变量值、算数运算比较
[ ]:bash内部命令“[”与test是等同的,正则字符范围、引用数组元素编号,不支持“+”、“-”、“*”、“/”数学运算符,逻辑测试使用-a、-o
[[ ]]:bash程序语言的关键字,不是一个命令,[[ ]]结构比[ ]结构更加通用,不支持“+”、“-”、“*”、“/”数学运算符,逻辑测试使用&&、||
{ }:主要用于命令集合或者范围,例如 mkdir -p /data/201{7,8}
2.for循环语句
语法格式如下所示:
for var in (表达式)
do
语句1
done
举例:
3.while循环语句
语法格式:
while(表达式)
do
语句1
done
举例:
4.case选择语句
语句格式:
# !/bin/bash
case $1 in
Pattern1)
语句1
; ;
Pattern2)
语句2
; ;
Pattern3)
语句3
; ;
esac
4.select选择语句
语法格式:
select i in(表达式)
do
语句
done
以上是关于Shell脚本编程的主要内容,如果未能解决你的问题,请参考以下文章