Linux之shell脚本学习(1)简介和变量

时间:2021-11-14 06:01:50

Linuxshell脚本学习(1)简介和变量

什么是shell

Shell是操作系统的最外层,可以理解是命令的集合,shell可以合并编程语言以控制进程和文件,以及启动和控制其他文件

简单来说,shell就是一个用户跟操作系统之间交互的命令解释器

Shell,应用程序,内核的关系如下

应用程序——shell——内核

Shell的好处,批量的处理,自动化的完成维护,减轻管理员的负担,监控服务器可用性,备份等‘

查看shell   #cat /etc/shell

其中,/bin/bash是大多数linux中默认的shell解释器,之后的所有脚本的编写都是bash脚本,在linux中,无扩展名,shell脚本需要有执行的权限

Shell脚本声明的格式

—创建一个shell脚本    #vim frist.sh

—编辑

#/bin/bash       固定格式,声明用的是bash解释器,#!是Sharp-hang符,是一个起始符,用于指定解释器

#echo hello             声明作用/或声明文件名

#author                      声明作者

echo hello

 

如何去执行一个脚本

1.     使用绝对路径执行

2.     使用相对路径执行 ./

3.     使用sh命令执行  语法  #sh 脚本吗

4.     使用.(空格)脚本名称的方式执行

5.     使用source脚本名称执行

 

Shell中的变量

变量的本质是存储数据的一个或多个计算机内存地址

Shell变量的分类:自定义变量,环境变量,位置变量,预定义变量

特点:

1.     声明变量不用声明类型

2.     可以存储不同类型内容

3.     使用要明确变量类型

4.     区分大小写

5.     左右两边不能有空格

A)自定义变量,由用户自定义变量

语法:#$变量名或${变量名}

Eg#linux=7.2

      #echo$linux

      #echo${linux}

Read命令

作用,通过键盘输入来定义变量

Eg#read –p  inputname

-p是为了提高可读性

B)系统变量,一般为大写

Eg$HOME, $PWD, $SHELL, $USER

显示当前shell中所有的变量 #set

shell中,单引号和双引号的区别:单引号会将所有的特殊字符脱意,双引号仅将空格脱意

Eg#x=”hello xx”

      #echo$x

      Helloxx

#x=’hello $x’

#echo $x

Hello $x

声明静态的变量 #readonly B=A     ——不能unset

声明全局环境变量#export A=B  

将命令的返回值赋给变量

语法: #A=”ls”或者A=$(ls)

C)特殊变量

$?表示上个命令退出的状态,0为执行成功,非0则执行失败

 

$$表示当前进程编号PID

 

$0表示当前脚本名称

 

$#表示参数变量的个数,常用于循环

 

$N表示位置变量,n代表数字,19

 

$*$@都表示参数列表,不被引号“”包含时,都已$1.$2….$n的形式输出,当他们被双引号“”包含时,$*会将所有的参数作为一个整体,以” $1.$2….$n”的形式输出所有参数,$@会将各个参数分开,以”$1”.”$2”….”$n”的形式输出所有参数