赞
踩
Shell是脚本语言,编辑库。
Shell中类非常多,Bash是所有的操作系统默认脚本语言。
(1)注释----#
#添加行注释,没有多行注释,只有单行注释
#输出了hello world
echo "hello world"
(2)变量
变量定义:
#错误写法
name = "Tom"
#正确写法
name="Amy"
Name="Daenerys"
name="daenerys"
_name="daenerys"
__name="daenerys"
echo $Name
echo $name
#错误
na me="Amy"
na,me="Amy"
#正确
na_me="Amy"
只读变量,常量
name="Hello"
readonly name
#以下代码报错
name="Hi"
删除变量
语法:unset
name="Amy"
echo $name
unset name
echo $name
变量类型
name="Amy"
local name="Amy"
export name="Amy"
#给脚本文件传参数
./hello.sh Jeff 100 2
#表示脚本文件的名称
${0}
name=${1}
age=${2}
class=@{3}
echo "姓名:${name} 年龄:${age} 班级:${class}"
${?},表示返回上一个命令执行状态返回值,0执行成功,1执行结果,2程序状态返回码。
echo ${0}
#打印结果0
echo ${?}
echo ${0}
name = "My name"
#打印结果127
echo ${?}
${#},表示参数个数
${*}表示参数列表
${@}参数列表
KaTeX parse error: Expected '}', got 'EOF' at end of input: {}当前shell进程的ID
${!}执行上一个指令PID
./hello.sh jack 20 男
echo $#
echo $*
echo $@
echo $$
echo $!
./hello.sh jack 20 男
echo ${#}
echo ${*}
echo ${@}
echo ${$}
echo ${!}
字符串
单引号,双引号
name='Myname'
name="Myname"
字符串拼接
name="Andy"
age=100
gender="男"
info="${name} ${age} ${gender}"
echo ${info}
name="Andy"
age=100
gender="男"
info="姓名:"${name}" 年龄:"${age}" 性别:"${gender}""
echo ${info}
获取字符串的长度
语法:${#变量名}
name="Name"
echo ${#name}
截取字符串
语法:${变量名:截取开始位置:截取长度}
name="I Have A Dream"
echo ${name:0:3}
echo ${name:3:3}
name="I Have A Dream"
length=${#name}
echo${name:5:length-1}
echo${name:5:${#name}-1}
echo${name:5:length}
name="I Have A Dream"
echo${name:5}
name="I Have A Dream"
echo${name:0:5}
字符串删除
语法一:${变量名#想要删除的字符串 正则表达式}
作用:从左边开始查找匹配
#下面删除不掉,因为从左边开始查找匹配
name="I have a dream"
result=${name#dream}
echo result
resul1t=${name#I}
echo result1
#查找指定字符,查找到的第一个,并且删除该字符前面的所有字符
name="I have a dream"
resul1t=${name#*D}
resul1t=${name#*a}
#删除指定范围,从第一位开始删,删到指定位置
name="I have a dream"
resul1t=${name#I*D}
语法二:${变量名##想要删除的字符串 正则表达式}
作用:从右边开始查找匹配,删除前面的所有
name="I have a dream"
result=${name##*a}
echo result
语法三:${变量名%想要删除的字符串 正则表达式}
从右边第一个开始查找
name="I have a dream"
result${name%a}
echo result
name="I have a dream"
result${name%m}
echo result
#查找指定字符第一个,并且删除前面所有,含自己
name="I have a dream"
result${name%h*}
result1${name%h*m}
echo result
echo result1
#指定删除的范围
name="I have a dream"
result${name%a*m}
echo result
语法四:${变量名%%删除字符}
#查找指定字符最后一个,并且删除前面所有的字符(包含自己)
name="I have a dream"
result${name%%a*}
总结:
#表示,从左边到右边查询删除
##表示,从右边到左边
%从右边删除到左边
%%左到右
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。