shell脚本——字符串变量

字符串的操作使用

#!/bin/bash

# 字符串变量
# 单引号,单号定义时不能使用转义符号,且不能出现其他变量)
myBook='yuebingquan'
# 双引号,双号定义时能使用转义符号,也能出现其他变量)
myName="zhangshaoyu is \"iOS Developer\", and age is $myAge"

#<---------------------------------------------->

echo $myBook

# 使用,并显示变量(只要在变量名称前加美元符号即可,当然为避免异常可以使用花括号括起来)
echo $myName
# 或
echo ${myName}

#<---------------------------------------------->

# 获取字符串长度(格式如:${#变量)
bookLength=${#myBook}
echo $bookLength

#<---------------------------------------------->

# 提取子字符串,如:从字符串 myName 第 1 个字符开始截取 11 个字符
name=${myName:1:11}
echo $name 

#<---------------------------------------------->

# 查找子字符串,如:在字符串查找字符 "yu" 的位置(无效执行???)
name="zhangshaoyu"
subName="yu"
echo `expr index $name $subName`
# 注意: 以上脚本中 "`" 是反引号,而不是单引号 "'",不要看错了哦。

#<---------------------------------------------->

# 字符串替换 
str="apple, tree, apple tree"
echo ${str/apple/APPLE}   # 替换第一次出现的apple
echo ${str//apple/APPLE}  # 替换所有apple 
echo ${str/#apple/APPLE}  # 如果字符串str以apple开头,则用APPLE替换它
echo ${str/%apple/APPLE}  # 如果字符串str以apple结尾,则用APPLE替换它

#<---------------------------------------------->

# 比较
[[ "a.txt" == a* ]]        # 逻辑真 (pattern matching)
[[ "a.txt" =~ .*\.txt ]]   # 逻辑真 (regex matching)
[[ "abc" == "abc" ]]       # 逻辑真 (string comparision) 
[[ "11" < "2" ]]           # 逻辑真 (string comparision), 按ascii值比较

#<---------------------------------------------->

# 字符串运算符

string1="zhangshaoyu"
string2="iOS Developer"

# = 检测两个字符串是否相等,相等返回 trueif [[ $string1 = $string2 ]]; then
    echo "$string1 等于 $string2"
else
    echo "$string1 不等于 $string2"
fi

# != 检测两个字符串是否相等,不相等返回 trueif [[ $string1 != $string2 ]]; then
    echo "$string1 不等于 $string2"
else
    echo "$string1 等于 $string2"
fi

# -z 检测字符串长度是否为0,为0返回 trueif [[ -z $string1 ]]; then
    echo "$string1 长度为0"
else
    echo "$string1 长度不为0"
fi

# -n 检测字符串长度是否为0,不为0返回 trueif [[ -n $string1 ]]; then
    echo "$string1 长度不为0"
else
    echo "$string1 长度为0"
fi

# str 检测字符串是否为空,不为空返回 trueif [[ $string1 ]]; then
    echo "$string1 不是空字符串"
else
    echo "$string1 是空字符串"
fi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值