${变量名:起始位置:长度} 从0开始

a=qwertfancy
echo ${a:0:1}  #打印的为q
生成随机数RANDOM
echo $RANDOM
echo $[RANDOM%62]
n=$[RANDOM%62]
echo ${a:$n:1}

echo -------------------------------

#!/bin/bash
a=qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890
for i in {1..8}
do
n=$[RANDOM%62]
a+=${a:$n:1}
done
echo $a
a=qweq
echo {a/q/6}   # 单/表示只替换首位
echo {a//q/6}  # 双//表示全部替换
echo {a//q/}   # 最后一个不填,表示替换为空
a=abcdef
echo ${a#abc}  #删除开头abc
echo ${a%def}  #删除结尾def
a=abcdef
echo ${a#*c}  #c前边(包括c)全部删除
a=abcdef
echo ${a%d*}  #d(包括d),后边的全部删除

a=abcdcdv
echo ${a##*c}  #如果存在多个c,可以使用##
a=abcdbcdv
echo ${a%%d*}  #如果存在多个b,可以使用%%

测试

#!/bin/bash
for  i   in   $( ls /opt/*.txt )
do
                    n=${i%.*}
                    mv $i $n.doc
done

echo----------------------

#!/bin/bash
for i in $( ls /opt/*.$1 )
do
              n=${i%.*}
              mv $i $n.$2
done

初值(不赋值情况下的默认值)

echo ${a:-abc}
abc

echo------------------

a=123
echo ${a:-abc}
123

echo---------------------------


#创建用户,如果不输入密码,存在qwer默认密码
#!/bin/bash
read -p "请输入用户名:" n
useradd  $n
read -p "请输入密码(默认密码qwer):" m
echo ${m:qwer} |  passwd --stdin $n