二、shell初步学习(基本语法)

1、变量

在几乎所有的计算机语言中都有变量,shell脚本开发中也有变量,它是指在一个过程中可以指定变化的量

1.1、变量的定义

shell脚本中定义变量时,变量名不加美元符号$,不同于PHP语言,

hello="hellp world"

注意,变量名和等号之间不能有空格,变量名定义时需要遵循相关的规则(同python等其它语言)

1.2、变量的使用

shell脚本中使用一个已经定义过的变量时,需要在变量名前面添加美元符号$,如:

#!/bin/bash

hello="hello world"

echo $hell0

当然,可以使用花括号将变量名括起来,告诉解释器是一个变量,这在一些特殊的地方很好用。例如:

for item in "one two three"
    echo "${item}_apple"

此时使用花括号是最好的选择,防止解释器区分不了变量的边界

1.3、只读变量

在python等计算机语言中,有常量,在shell脚本中可以定义只读变量,表示该变量一旦定义,后续操作只能进行读操作,不能进行写操作 。使用readonly进行指定,如:

#!/bin/bash

myUrl="https://www.google.com"
readonly myUrl
myUrl="https://www.baidu.com"

运行脚本会出现错误提示,表示该变量为 read only

1.4、删除变量

对于变量的释放,即删除,则使用unset关键字,注意两点(1、只读变量不可进行删除。2、删除后变量无法使用,即不存在)

#!/bin/sh

name="zhangsan"
unset name
echo $name

运行后不会出现任何输出

1.5、变量的类型

shell脚本中会涉及到局部变量、环境变量和shell变量

  1. 局部变量:在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  2. 环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  3. shell变量:shell中的特殊变量,为保证shell的正常运行而定义,一部分为局部变量,一部分为环境变量

2、shell字符串

shell脚本中最常用的就是字符串和数字,可以使用单引号‘’,双引号“”及不用引号

2.1、字符串的定义

#!/bin/bash

one='one'
two="two"
three=something

拼接字符串

#!/bin/bash

one="one"
# 使用双引号拼接
greeting="hello, "$one" !"
greeting_1="hello, ${one} !"
echo $greeting  $greeting_1


# 使用单引号拼接
greeting_2='hello, '$one' !'
greeting_3='hello, ${one} !'
echo $greeting_2  $greeting_3

输出结果为

hello, one ! hello, one !
hello, one ! hello, ${one} !

获取字符串长度

#!/bin/bash

one="hello world"

echo ${#one}  # 输出11

read -n 1  # 确保界面不退出

提取子字符串

以下实例从字符串第 3 个字符开始截取 5 个字符:

格式:${变量名:索引位置:截取个数}

#!/bin/bash

one="hello world"

echo ${one:2:5}  # 输出llo w,空格也会被打印

read -n 1  # 确保界面不退出

注意:第一个索引位置为0

查找子字符串

查找字符 l 的位置(查找到的第一个值的位置):

#!/bin/bash

one="hello world"

echo `expr index "$one" l` # 输出3,此时输出的并非索引

read -n 1  # 确保界面不退出

注意:` 是反引号,而不是单引号 '

3、shell脚本数组

对于shell脚本中的数组来说,与c语言中的数组基本一致,可以定义数字数组、字符串数组等

3.1、数组的定义

数组的定义分为三种:

①使用空格符分开

②使用回车符分开

③利用索引直接进行定义

#!/bin/bash

# 定义数组

# 使用空格分开
two=(value0 value1 value2 value3)
one=(1 2 3 4)

# 使用回车符分开
three=(
1
2
3
4
)

# 直接进行定义
four[0]=1
four[1]=2
four[2]=3
four[3]=4

读取数组

读取数组元素值的一般格式是:${数组名[下标]},与变量一致,获取时需要加美元符号$,数组名指的是数组的第一个元素,需要哪个元素要指定相应的索引位置,如:

#!/bin/bash

one=(1 2 3 4)
echo "使用数组名输出$one"
echo "使用数组名输出${one}"

# 指定数组索引
echo "指定数组索引输出${one[1]}"

read -n 1

注意:此处输出使用双引号"",单双引号输出有何不同可以自己试试

输出如下:

使用数组名输出1
使用数组名输出1
指定数组索引输出2

对于整个数组的输出,可以进行遍历,此处初步介绍一下printf,类似c语言中printf()函数,shell脚本中也有类似命令printf,作用与echo命令一致,唯一不同在于echo输出时会自动输出回车符,printf则不会自动输出回车

#!/bin/bash

# @Author: admin
# @Date:   2021-04-26 17:27:56
# @Last Modified by:   admin
# @Last Modified time: 2021-04-27 09:55:41

one=(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值