Shell 脚本学习笔记

目录

1、创建Shell文件

2、运行Shell脚本

3、Shell变量

4、Shell 字符串

5、Shell数组

6、Shell注释

7、Shell传递参数

8、Shell基本运算符

9、Shell echo命令

10、Shell printf 输出命令

11、Shell test 命令

12、Shell 流程控制

13、Shell函数

14、Shell 文件包含


1、创建Shell文件

       编辑shell文件内容,保存后会自动创建对应的test.sh文件。

2、运行Shell脚本

     1)可执行程序运行

         修改脚本执行权限 chmod +x ./test.sh

         执行脚本  ./test.sh

    2) 作为解释器参数

       直接运行解释器,参数为shell脚本文件 sh test.sh

3、Shell变量

       1)变量命名

            命名只能使用英文字母,数字和下划线,首个字符不能以数字开头

            中间不能有空格,可以使用下划线(_)

            不能使用标点符号

            不能使用bash里的关键字(可用help命令查看保留关键字)

             变量大小写敏感

            定义变量user_name=”wangchao”等号前后不能有空格

       2)变量使用

           $变量名

          ${变量名}

           定义变量user_name=”wangchao”

           定义变量user_name =”wangchao”

           定义变量user_name= ”wangchao”

          使用变量 $user_name 或者 ${user_name}

       3)只读变量

           使用readonly命令可以将变量定义为只读变量。

url = “baidu.com”
readonly url
url=”www.baodu.com”
echo url

      4)变量类型

       shell 存在三种变量

       局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量

      环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量

      shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

4、Shell 字符串

     字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号

    1)单引号

       单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的

       单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用

     2)双引号

         双引号里可以有变量

         双引号里可以出现转义字符

    3)反引号(` `)

         在反引号中的字符串将解释成shell命令来执行

    4)拼接字符串

        双引号拼接,单引号拼接

    5)获取字符串长度

        使用#获取变量字符串值的长度

user_name=”wangchao”
echo ${#user_name}

    6)提取子字符串

echo $user_name:1:4  # 错误用例
echo ${user_name:1:4}

     7)查找子字符串

          查找字符i或者o的第一个位置

string=runoob is great site
echo `expr index "$string"io`

5、Shell数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小

数组元素的下标由 0 开始。获取数组元素要利用下标,下标可以是整数或算术表达式可以不使用连续的下标,而且下标的范围没有限制

1)数组定义

在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开

array_name=(value0 value1 value2 value3)

或者

array_name=(

value0

value1

value2

value3

)

2)数组读取

value=${array_name[n]}

使用@符号可以获取数组中的所有元素

echo ${array_name[@]}

3)获取数组长度

获取数组元素个数 len=${#array_name[@]} 或者 len=${#array_name[*]}

获取数组单个元素长度 len=${#array_name[n]}

6、Shell注释

行注释使用 #

多行注释使用 :<<EOF  注释..... EOF 或者 :<< 注释内容...  或者 :<<! 注释内容...  !

7、Shell传递参数

执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰望星空@脚踏实地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值