码迷,mamicode.com
首页 > 系统相关 > 详细

Shell脚本编程

时间:2019-11-16 19:43:01      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:划线   int   符号   pid   命令   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脚本编程

标签:划线   int   符号   pid   命令   shell命令   字符   $$   内部命令   

原文地址:https://www.cnblogs.com/1128a/p/11872866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!