您的位置:首页 > 运维架构 > Shell

shell脚本——变量的设置及使用

2016-09-01 11:32 405 查看
变量的设置及使用

#!/bin/bash

# 定义变量

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

# 常量变量
myAge=30
echo $myAge

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

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

echo $myBook

#如果变量是只读的,则可如下设置
readonly myName

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

# 删除变量(只读时,不能删除)
unset myName

# 字符串操作
# 1 获取字符串长度(格式如:${#变量)
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值比较

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

# 数组变量(只支持一维数组,不支持多维数组;没有大小限制)
nameArray=('zhangsan' 'lisi' 'wangwu' 'zhaosi')
# 或通过下标单独定义每个分量
nameArray[4]='herman'

# 读取元素值
# 单个元素
echo ${nameArray[2]}
# 所有元素
echo ${nameArray[@]}
echo ${nameArray[*]}

# 数组元素个数
echo ${#nameArray[@]}
echo ${#nameArray[*]}

#<------------------------------------------------->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 脚本