Shell 脚本简介
Shell 脚本 (shell script),是一种为shell编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
由于习惯的原因,简洁起见,本文出现的 “shell编程” 都是指 shell 脚本编程,不是指开发 shell 自身。
# #!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
#!/bin/bash
#echo 命令用于向窗口输出文本。
echo "this is a shell script"
变量命名规则
1.只能使用数字、下划线、英文字母,首个字符不能以数字开头
2.中间不能有空格,可以使用下划线
3.不能使用标点符号
4.不能使用bash里的关键字
变量的定义
#定义变量时不加 $ 符合
file_name="photo"
变量的使用
file_name="photo"
#使用变量时需要加上 $ 符号
echo "$file_name"
#大括号可加可不加,如果需要识别变量的边界则加上,当然建议加上
echo "${file_name}add"
#变量的重新赋值
file_name="hive"
#只读变量的定义,只能读不能被修改否则会报错
readonly file_name
#变量的删除
unset file_name
单双引号的区别
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
- 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用
- 双引号里可以有变量
- 双引号里可以出现转义字符
#!/bin/bash
echo "测试变量相关"
str="this is a string"
#使用双引号
echo "$str"
echo "hello,${str}"
echo "hell,\"${str}\"!" --转义
echo "hell,"$str"!"
#输出结果
this is a string
hello,this is a string
hell,"this is a string"!
hell,this is a string!
#使用单引号
echo '$str'
echo 'hello,${str}'
echo 'hello,'${str}'!' --使用变量进行字符串拼接
echo 'hell,\"${str}\"!'
#输出结果
$str
hello,${str}
hello,this is a string!
hell,\"${str}\"!
字符串相关基本操作
#获取字符串长度
echo ${#str}
#截取字符串从0开始截取3位
echo ${str:0:3}
#截取字符串从2开始截取4位
echo ${str:2:4}
#查找字符串中某一个字符的位置从1开始,找不到则输出0,多个查找只会输出第一个找到的下标
echo `expr index "${str}" ex` --使用的是反引号
数组相关基本操作
#数组的定义使用括弧,数据之间使用空格
arr=(1 2 3 4 5)
#数组的查询
echo ${arr[0]} --输出某一下标的数据
echo ${arr[*]} --输出所有数据
echo ${arr[@]} --输出所有数据
#获取数组长度
echo ${#arr[2]} --输出指定下标的数据的长度
echo ${#arr[*]} --输出数组的长度
Shell 脚本执行方式
1.作为可执行程序
#给脚本赋予执行权限
chmod +x ./test.sh
#执行脚本 ./test.sh 告诉系统在当前目录寻找该脚本
./test.sh
2.作为解释器参数
#不需要在脚本中第一行指定解释器
sh test.sh