shell:是用c编写的程序
shell脚本:是一种shell编写的脚本程序。
shell编程根java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释其就可以了
linux的shell种类众多,常见的有:
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell (/bin/bash)
C Shell (/usr/bin/csh)
k Shell (/usr/bin/ksh)
Shell for Root(/sbin/sh)
常用Bash,也就是Bourne Again Shell,易用且免费。Bash 也是大多数linux系统默认的Shell
#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell 程序
Shell 程序步骤
1、创建一个文件,扩展名为.sh
2、修改文件的权限为可执行文件
3、执行
Shell结构
1、#! 用来指定执行脚本的shell
2、# 注释
3、命令和控制结构
Shell变量
命名规则:
1、命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
2、中间不能有空格,可以使用下划线(_).
3、不能使用标点符号
4、不能使用bash里的关键字
使用规则:
1、习惯用大写字母来命名变量
2、赋值时,“=”前后不能有空格
3、命令的执行结果赋值给变量时,使用反单引号 如 TIME=`date`
4、使用变量时,使用$变量名 ${变量名}
只读变量
readonly 变量名 只读变量的值不能被改变
删除变量
unset 变量名 但不能删除只读变量
临时变量:也叫局部变量,在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量
永久变量:也叫环境变量,所有程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行,必要的时候shell脚本也可以定义环境变量
shell中的字符串(一般shell脚本就数字和字符串类型)
①:字符串,不用单引号或双引号引着
②:字符串,使用单引号引着
③:字符串,使用双引号引着
一、拼接字符
1、无缝拼接:" "${}""
2、双引号内 直接使用变量 "aad${}"
二、获取字符串长度
语法1:${#name}
语法2:expr length "${name}"
三、提取子字符串
语法1:${name:startIndex:length}
语法2:${name:startIdex}
语法3:${name:0-Index:length}
语法4:${name:0-Index}
${name*#<指定字符>}从左边删除到第一个指定字符(指定字符也删除)
${name*##<指定字符>}从左边删除到最后一个指定字符(指定字符也删除)
${name%*<指定字符>}从右边删除到第一个指定字符(指定字符也删除)
${name%%*<指定字符>}从右边删除到最后一个指定的字符(指定字符也删除)
四、数组
定义数组:arrayname=(value1 value2 .....) 以空格做为分隔符 其中的数据类型可以不一样,且不定长度
arrayname=(value1
value2
.......)以回车做为分隔符
直接元素赋值
arrayname[0]=value1
arrayname[1]=value2
.................
读取数组元素
${name[i]}
获取数组所有的值
${name[@]}或者${name[*]}
获取数组长度
${#name[@]}或者${name[*]}