Shell脚本学习1——运行、变量、字符串、数组

学习过windows脚本后,继续学习一下shell脚本的相关内容

运行

首先运行Shell脚本有两种方法
1.将其作为可执行程序
保存代码为.sh文件,并进入到文件所在目录

chmod +x ./test.sh #使其具备执行权限
./test.sh #执行

这里要注意的是,通常情况下./必不可少,因为并为将其配置在PATH中,使用./就是告诉系统文件在当前目录中

2.作为解释器参数

/bin/sh test.sh

直接运行相关解释器,文件名作为参数

变量

定义变量:
定义变量时,变量名与等号之间不能有空格,其余要求与通常语言一致

使用变量
使用一个已经定义过的变量时,只要在变量名前加‘$'符号即可,同时建议对变量名加上大括号{},便于识别

只读变量
定义变量后,为防止被更改,可通过命令(readonly)设定为只读
例如

myname = "lll"
readonly myname

删除变量
使用unset命令删除之前定义过的变量

字符串

单引号定义,引号中的变量无效,引号若再次出现单引号则被截断,即使使用转义符也不可。

双引号定义,可以有变量,可以使用转义字符

获取字符串长度

name = 'lll'
echo $(#name)

获取子字符串

echo ${name:1:2}

从字符串1个字符开始,长度为2

查找子字符串

echo `expr index "&name" o`

`是反引号,不是单引号,此符号位于tab键上方,功能是替换,把一个命令的标准输出插在 一个命令行的任何位置

这里另外补充几种判断是否包含子串方法
1.grep

strA="long"
strB="on"
result=$(echo $strA | grep "$strB")
if["$result" != ""]
then echo "IN"
fi

2.利用运算符

strA="long"
strB="on"
if [[$strA =~ $strB]]
then echo "IN"
fi

=~ 符号直接判断是否包含

3.利用通配符

strA="long"
strB="on"
if [[$strA =~ *$strB*]]
then echo "IN"
fi

数组

shell中限制数组只能为1维
括号表示数组,元素用空格分开

array=(val1 val2 val3)

读取数组
直接下标读取即可

获取数组长度

#两种方法
length=${#arrayname[@]}
length=${#arrayname[*]}
#获取单个元素长度
length=${#arrayname[0]}

大段注释

:<<EOF
	内容
EOF

以上内容部分参考
菜鸟教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值