Shell编程语法之一:基本语法

13 篇文章 0 订阅

一、变量和字符串

用途语法输出备注
新建变量x=hello变量名和等号间无间隔
修改变量值x=hello1不使用‘$’符号
使用变量${x}花括号可有可无,但是可以确定变量边界,‘$’必须有
输出echo $x world#hello world字符串可以没有双引号或单引号来进行分割
只读变量readonly x此后修改变量x值会报错
删除变量unset x无法删除只读变量
获取字符串长度${#x}#5必须加花括号
截取字符串${x:1:3}#ell从一号位置开始截取三个字符
查询字符位置`expr index “$x” eo`#1使用“`”反引号,查找字符‘e’或‘o’的位置,先找到那个字符就输出其位置
注释#这是注释只有单行注释

二、数组

用途语法输出备注
新建数组变量arr=(1 3 5 7 9)括号表示数组,使用空格隔开每项,不支持多维数组,下标从0开始
单独定义数组变量arr[1]=4可以不连续
读取数组${arr[2]}#5必须添加花括号,使用@索引获取全部数组元素
获取数组长度${#arr[@/*]}#5‘@’或‘*’都可以

三、参数传递

用途语法输出备注
获取传递参数$2获取打开文件时传递的第二个参数,如:“./hello.sh 1 2 3”此时获取的是‘2’
获取执行文件名$0获取到执行的文件名称:“./hello.sh”
获取传递到脚本的参数个数$#“3”
将传递的参数用字符串显示$*“1 2 3”一个值
将传递的参数用字符串显示$@“1” “2” “3”三个值

四、算术运算符

用途语法输出备注
运算“+ - / %”`expr 1 + 1`2使用“`”反引号分割;expr表达式工具;表达式和运算符之间必须要有空格分割
运算“*”`expr 1 \* 1`2对于乘法“*”必须要转义“\*”
判断相等[ $x == $y ]表达式和中括号之间必须有空格

五、关系运算符

x=10
y=20
#关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
用途语法输出备注
判断相等[ $x -eq $y ]false-eq
判断不相等[ $x -nq $y ]true-nq
判断大于[ $x -gt $y ]false-gt
判断小于[ $x -lt $y ]true-lt
判断大于等于[ $x -ge $y ]false-ge
判断小于等于[ $x -le $y ]true-le
非运算[ ! $x -eq $y]true-eq
算术与运算[ $x -eq $y -a \$x -nq \$y ]false-a
算术或运算[ $x -eq $y -o \$x -nq \$y ]true-o
逻辑与运算[ $x -eq $y && \$x -nq \$y ]false&&
逻辑或运算[ $x -eq $y || \$x -nq \$y ]true||

六、字符串运算符

x="hello"
y="world"
用途语法输出备注
判断字符串相等[ $x = $y ]false=
判断字符串不相等[ $x != $y ]true!=
判断字符串不相等[ $x != $y ]true!=
判断字符串长度为0[ -z $x ]false-z
判断字符串长度不为0[ -n $x ]true-n
判断字符串不为空[ $x ]truestr

七、文件测试运算符

file="/var/www/runoob/test.sh"
#变量file 表示文件"/var/www/runoob/test.sh",它的大小为100字节,具有 rwx 权限。
用途语法输出备注
检测文件是否是目录[ -d $file ]false-d
检测文件是否可读[ -r $file ]true-r
检测文件是否可写[ -w $file ]true-w
检测文件是否可执行[ -x $file ]true-x
检测文件是否为空[ -s $file ]true-s
检测文件是否存在[ -e $file ]true-e
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值