shell基础操作

一、字符串

字符串是shell编程中最常用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。

单引号

name='xiaoxi'

单引号的限制:

  • 单引号里的任何字符都会原样输出,单引号中的变量是无效的。

  • 单引号字串中不能出现单引号(对单引号使用转义符也不行)。

双引号

name="xiaoxi"

uname="${name}\"test"

双引号的优点:

  • 双引号里可以包含变量

  • 双引号里可以出现转义字符

不加引号

name=xiaoxi

uname=${name}\"test

  不加引号和双引号效果类似,只是开头和结尾没有双引号。

拼接字符串

name='xiaoxi'

uname="${name}test"

uname2="$name$uname"

echo $name $uname $uname2

输出:

[root@xiaoxitest ~]# ./test.sh
xiaoxi xiaoxitest xiaoxixiaoxitest

获取字符串长度

name='xiaoxi'

echo ${#name}

输出:

[root@xiaoxitest ~]# ./test.sh
6

提取字符串

name='xiaoxitest'

echo ${name:0:6}

输出:

[root@xiaoxitest ~]# ./test.sh
xiaoxi

查找字符串

name='xiaoxitest'
echo `expr index ${name}  xiaoxi`

输出:

[root@xiaoxitest ~]# ./test.sh
1    #1表示存在,0表示不存在

二、转义字符

name='xiaoxitest'
echo -e "xiaoxi\ntest"

输出:

[root@xiaoxitest ~]# ./test.sh
xiaoxi
test

这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:

xiaoxi\ntest

其它转义字符也可以用于echo中:

三、表达式

将命令结果存储在变量中

name=`who | awk {'print $1'}`  #注意是反引号,位于Esc键下方
count=$(who | wc -l)
echo -e "The user login count: ${count}\n${name}"

输出:

[root@xiaoxitest ~]# ./test.sh
The user login count: 2
root
xyp

四、数组定义

bash仅支持一维数组,并且没有限制数组的大小。用括号表示数组,数组元素用“空格”符号或换行分隔。

例1:

name=(aa bb cc)

例2:

name=(

aa

bb

cc

)

也可单独定义数组的各个元素

name[0]=aa

name[1]=bb

name[3]=cc

五、数组读写

例:

#!/bin/bash
sar=(aa bb cc) echo sar:${sar[*]} name[0]=aa name[1]=bb name[3]=cc uname=(${name[1]} dd) echo "name:${name[1]} uname:${uname[*]}"

输出:

[root@xiaoxitest ~]# ./test.sh
sar:aa bb cc
name:bb uname:bb dd

使用@ 或 * 可以获取数组中的所有元素,例如:

${name[*]}

${name[@]}

转载于:https://www.cnblogs.com/xiaoxitest/p/6423614.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值