Shell学习|青训营笔记

13 阅读2分钟

一、Shell概述

Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。 (Shell语言是一种解释形语言,即写完不需要编译就可以运行。) 学习Shell的目的是:编写脚本,有助于以后的开发 1.查看Linux系统中的shell解析器 其中 /bin/sh 和 /bin/bash 都是CentOs中的shell解析器 sh和bash的关系:两者本质上是同一个东西,sh是指向bash的一个软链接。

二、Shell脚本入门

1.创建并运行简单脚本文件,打印“hello world!”

#!/bin/bash
echo "hello world"

创建的 .sh 文件是没有执行权限的,可以通过bash和sh命令运行程序,或者通过chmod为文件增加可执行权限

三、变量

1.常用系统变量 $HOME, $PWD, $SHELL, $USER

2.自定义变量

定义变量:变量=值 撤销变量:unset 变量 声明静态变量:readonly 变量=值 注:静态变量不能unset

3.变量定义规则

变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。 等号两侧不能有空格。 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。 变量的值如果有空格,需要使用双引号或单引号括起来。 把变量提升为全局环境变量,可供其他Shell程序使用 : export 变量名。 4.特殊变量

1,$n 功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}

2,$# 功能描述:获取所有输入参数个数,常用于循环

3,$*、$@ $* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体) $@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待) 注意:如果想让$*和$@ 体现区别必须用双引号括起来才生效

4,$? 功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)

四、运算符

1.基本语法

"$((运算式))”或“$[运算式]"