Shell脚本 字符串

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没有其它类型好用),字符串可以用单引号,也可以用双引号,也可以不用引号。

1、单引号

str='this is a string'

[root@hadoop01 shell]# vi String.sh

#!/bin/bash
str1='this is a String'
echo $str1

[root@hadoop01 shell]# chmod a+x ./String.sh 
[root@hadoop01 shell]# ./String.sh 
this is a String

注意:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)

2、双引号

[root@hadoop01 shell]# vi String.sh

#!/bin/bash
str1='this is a String'
str2="look at:\"$str1\"!\n"
echo $str1
echo $str2

[root@hadoop01 shell]# ./String.sh 
this is a String
look at:"this is a String"!\n

双引号的优点:

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

3、拼接字符串

[root@hadoop01 shell]# vi String.sh

#!/bin/bash
str1='this is a String'
str="hello,$str1!"
echo $str

[root@hadoop01 shell]# ./String.sh 
hello,this is a String!

4、获取字符串长度

string="abcdef"

echo ${#string} #输出 6

[root@hadoop01 shell]# vi String.sh

#!/bin/bash
string="abcdef"
echo ${#string}

[root@hadoop01 shell]# ./String.sh 
6

5、提取子字符串

以下实例从字符串第 2 个字符开始截取 4 个字符:

string="this is a class"

echo ${string:1:4} # 输出 his

[root@hadoop01 shell]# vi String.sh

#!/bin/bash
string="this is a class"
echo ${string:1:4}

[root@hadoop01 shell]# ./String.sh 
his

6、查找子字符串

查找字符 "i 或 s" 的位置:

string="this is a class"

echo `expr index "$string" is`  #输出 3  (注意""不能去掉)

[root@hadoop01 shell]# vi String.sh

#!/bin/bash
string="this is a class"
echo `expr index "$string" is`

[root@hadoop01 shell]# ./String.sh 
3

注意:

之上脚本中 " ` " 是反引号,而不是单引号 " ' ",不要看错了哦。反引号`` 某些时候可用$()来替代。

如:echo `ll` 等价于 echo $(ll)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值