美文网首页Shell
Shell脚本语言:注释、变量及字符串(2)

Shell脚本语言:注释、变量及字符串(2)

作者: 095b62ead3cd | 来源:发表于2018-07-25 15:12 被阅读5次

一、注释
示例代码:

  #!/bin/bash
#输出"Hello world!"
echo "Hello world!"

在Shell脚本中,没有多行注释,只有单行注释。

二、变量
1、变量定义:

定义变量的时候变量名处不需要加$
变量名和等号之间不能有空格
变量名的首字母必须是字母或下划线
变量名中间不允许有空格
不允许使用标点符号

2、只读变量:
关键字:readonly
示例代码:

name="abc"
readonly name
name="123"
echo"ready go"

结果:

iMac03deiMac:Desktop imac03$ ./hello.sh 
./hello.sh: line 5: name: readonly variable
ready go

3、删除变量:
语法:unset 变量名
示例代码:

name="abc"
echo $name
unset name
echo $name
echo "ready go"

结果:

abc

ready go

4、变量类型:
本地变量:作用域整个bash进程 name="name"
局部变量:作用域当前代码段 local name="name"
环境变量:作用域当前shell进程及子进程 export name="name"
位置变量:示例代码:

#${0}表示脚本文件名称,参数从1开始
name=${1}
age=${2}
sex=${3}
echo "姓名:${name} 年龄:${age} 性别:${sex}"
执行脚本:
 ./hello.sh xiaoming 12 男
执行结果:
姓名:xiaoming 年龄:12 性别:

特殊变量:
示例代码:

name=${1}
age=${2}
sex=${3}
echo ${?} #返回上一个命令执行状态的值  0执行成功 1程序执行结果 2:程序状态返回码(0-255)
echo $#  #参数个数
echo $*  #参数列表,将所有参数组成一个字符串
echo $@  #参数列表,分开的字符串
echo $$  #获取当前shell进行ID
echo $!  #执行上一个指令pid
echo "姓名:${name} 年龄:${age} 性别:${sex}"

执行脚本结果:

 ./hello.sh xiaoming 12 男
执行结果:
0
3
xiaoming 12 男
xiaoming 12 男
3071

姓名:xiaoming 年龄:12 性别:男

三、字符串
1、定义:单引号,双引号都可以

name='123'
echo ${name}
name="123"
echo ${name}
结果:
123
123

2、字符串拼接:
示例代码1:

name='xiaoming'
age=18
sex='男'
info="${name}${age}${sex}"
echo ${info}

结果:xiaoming18

示例代码2:

name='xiaoming'
age=18
sex='男'
info=" 姓名:"${name}"   年龄:"${age}"  性别:"${sex}"  "
echo ${info}

结果:姓名:xiaoming 年龄:18 性别:男

3、获取字符串长度:{#变量名} 4、字符串截取:{变量名:开始位置:截取长度}
5、字符串删除:
语法1:${变量名#删除字符串 正则表达式}
作用:从字符串开头(左边)开始匹配要删除字符串

info="姓名:name   年龄:age  性别:sex"
result=${info#姓名}
echo ${result}
结果::name 年龄:age 性别:sex

语法2:${变量名##删除字符串 正则表达式}
作用:从字符串结尾(右边)开始匹配要删除字符串

info="姓名:name   年龄:age  性别:sex"
result=${info##*e}
echo ${result}
结果:x

总结:语法1和语法2都是从左边删除到右边,查找方向不一样

语法3:${变量名%删除字符串 正则表达式}
作用:从字符串结尾(右边)开始匹配,删除匹配的字符串

info="姓名:name  sdsfdasdfees 年龄:age  性别:sex"
result=${info%f*}
echo ${result}
结果:姓名:name sdsfdasd

语法4:${变量名%%删除字符串 正则表达式}
作用:从字符串开头(左边)开始匹配要删除字符串

info="姓名:name  sdsfdasdfees 年龄:age  性别:sex"
result=${info%%f*}
echo ${result}
结果:姓名:name sds

总结:

从左边删除到右边
         #->表示查询方向从左到右
        ##->表示查询方向从右到左
从右边删除到左边
        %->表示查询方向从右到左
        %%->表示查询方向从左到右

相关文章

  • Shell脚本语言:注释、变量及字符串(2)

    一、注释示例代码: 在Shell脚本中,没有多行注释,只有单行注释。 二、变量1、变量定义: 2、只读变量:关键字...

  • Shell脚本基础

    1.Shell变量 2.Shell字符串 3.Shell数组 4.Shell注释 5.Shell参数传递 参数处理...

  • Shell脚本语言一

    一、语法 格式 运行 Shell变量 Shell字符串 Shell数组 Shell注释 Shell传递参数 She...

  • 使用shell脚本

    使用方式 shell 变量 shell 字符串操作 shell 数组 shell 注释 shell 命令行参数 s...

  • 第1次课-Shell脚本语言-第1讲

    进入Shell语言基础学习? 1、第一个Shell程序? 2、Shell脚本语法->注释? 3、Shell脚本语言...

  • shell脚本语言

    Shell脚本语言 1.开始 2.运行 Shell 脚本的两种方法: 3.Shell变量 3.1定义变量 3.2使...

  • 2.shell变量

    1.注释: shell语法使用#来注释内容: shell中没有多行注释,只有单行注释 2.变量类型: 类型一:本地...

  • Shell脚本语言学习二

    Shell脚本语言学习一Shell脚本语言学习三 Shell脚本语言 echo命令? 显示普通字符串脚本代码: ...

  • shell脚本编程

    变量 1、定义变量时,变量名不加符号即可。 shell注释 1、以#开头的行就是注释。2、多行注释。 EOF也可以...

  • 三.shell脚本语言

    命令状态 shell脚本语言-echo命令? 显示普通字符串 显示转义字符 显示变量 显示换行 *不换行 显示一个...

网友评论

    本文标题:Shell脚本语言:注释、变量及字符串(2)

    本文链接:https://www.haomeiwen.com/subject/bldpmftx.html