Shell介绍(一)

一 、第一个shell脚本

1、打开文本编辑器 vi/vim test.sh
2、输入代码 echo "Hello World!"
3、保存 :wq
4、执行 ./test.sh

运行Shell脚本有两种方法:

  1. 作为可执行程序
chmod +x ./test.sh  或 chmod 744 ./test.sh
备注: 直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里
  1. 作为解释器参数
/bin/sh test.sh

二、Shell变量

1、定义变量

变量名的命名须遵循如下规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线 _。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。
your_name="allen"

2、使用变量

使用一个定义过的变量,只要在变量名前面加美元符号即可

echo $your_name
echo ${your_name}  //推荐使用这种

3、只读变量

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

readonly your_name

4、删除变量

使用 unset 命令可以删除变量。

三、Shell字符串

1、单引号

str='this is a string'
备注: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

2、双引号

str="Hello, I know you are \"$your_name\"! \n"
备注: (1)双引号里可以有变量 (2) 双引号里可以出现转义字符

3、获取字符串长度

echo ${#your_name}              #结果是5

4、提取子字符串

echo ${your_name:1:4}          # 字符串第2个字符开始截取4个字符

5、查找子字符串

echo `expr index "abcdefg" d`  #结果是4

在这里插入图片描述
在这里插入图片描述

四、Shell数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
数组元素的下标由 0 开始编号。获取数组中的元素要利用下标。

1、定义数组

数组名=(值1 值2 ... 值n)      # name=(allen mini jack)

2、读取数组

(1)${数组名[下标]}

echo ${name[1]}            # mini 

(2)使用 @ 符号可以获取数组中的所有元素: ${数组名[@]}

echo ${name[@]}           # allen mini jack
echo ${name[*]}

3、获取数组长度

echo ${#name[@]}    # 3
echo ${#name[*]}    # 3
echo ${#name[1]}    # 4  打印的是mini的长度

五、Shell 传递参数

执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、Shell 基本运算符

Shell 和其他编程语言一样,支持多种运算符,包括:

  • 算数运算符
  • 关系运算符
  • 布尔运算符
  • 字符串运算符
  • 文件测试运算符

1、算术运算符

在这里插入图片描述

注意:
1、原生bash不支持简单的数学运算,但可以通过 expr 来实现 。
2、完整的表达式要被 `` 包含,使用的是反引号 ,而不是单引号 。
3、表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2。
4、条件表达式要放在方括号之间,并且要有空格,例如: [ a = = a== a==b] 是错误的,必须写成 [ $a == $b ]
5、乘号(*)前边必须加反斜杠()才能实现乘法运算 ----- 报错 #expr: syntax error

2、关系运算符

在这里插入图片描述

3、布尔运算符

在这里插入图片描述

4、逻辑运算符

在这里插入图片描述

5、字符串运算符

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值