三叶草 发表于 2022-8-1 13:33:45

CentOS shell中的变量

${#变量名}:获取该变量的长度# vim a.sh
#!bin/bash
name=wsh
echo ${#name}
# . a.sh
3
# vim a.sh
#!bin/bash
name=$1
echo ${#name}
# . a.sh123456
6
# vim a.sh
#!bin/bash
read -p '请输入用户名:' name
read -p '请输入密码:' pas
if [ ${#pas} -lt 8 ];then
echo '密码必须大于等于八位'
else
echo '密码符合要求'
fi
# . a.sh
请输入用户名:www
请输入密码:111
密码必须大于等于八位
# . a.sh
请输入用户名:www
请输入密码:12345678
密码符合要求
${变量名}:调用变量
${变量名:偏移量}:字符串的截取
# vim a.sh
#!bin/bash
name=wsh
echo ${name:1}
# . a.sh
sh
${变量名:偏移量:步长}:字符串的截取
# vim a.sh
#!bin/bash
name=wsh_blog51CTO
echo ${name:3:5}
# . a.sh
_blog
${变量名#字符串}:从变量开头,删除最短匹配word的子串
${变量名##字符串}:从变量开头,删除最长匹配word的子串
# vim a.sh
#!bin/bash
name=/tmp/abc/1.txt
echo ${name#*/}
echo ${name##*/}
# . a.sh
tmp/abc/1.txt
1.txt
# vim 1.txt
/tmp/abc/1.txt
/root/2.txt
/usr/local/src/3.txt
# vim a.sh
#!bin/bash
for line in `cat 1.txt`;do
echo ${line##*/}
done
# . a.sh
1.txt
2.txt
3.txt
${变量名%字符串}:从变量结尾,删除最短匹配word的子串
${变量名%%字符串}:从变量结尾,删除最长匹配word的子串
#!bin/bash
for line in `cat 1.txt`;do
echo ${line%%/*}
echo ${line%/*}
done
# . a.sh
/tmp/abc
/root
/usr/local/src
${变量名/匹配内容/替换内容}:使用string替换第一个pattern
# vim a.sh
#!bin/bash
read -p '请输入用户名:' name
echo ${name/ww/wsh}
# . a.sh
请输入用户名:ww_fff_ggg_ww
wsh_fff_ggg_ww
${变量名//匹配内容/替换内容}:使用string替换所有pattern
# vim a.sh
#!bin/bash
read -p '请输入用户名:' name
echo ${name//ww/wsh}
# . a.sh
请输入用户名:ww_ff_ww_gg
wsh_ff_wsh_gg

http://blog.itpub.net/70003733/viewspace-2908253/
页: [1]
查看完整版本: CentOS shell中的变量