表达式 | 含义 |
---|---|
${string: start :length} | 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符 |
%string:~start,length% | |
${string: start} | 从 string 字符串的左边第 start 个字符开始截取,直到最后 |
%string:~start% | |
${string: 0-start :length} | 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符 |
%string:~-start,length% | |
${string: 0-start} | 从 string 字符串的右边第 start 个字符开始截取,直到最后 |
%string:~-start% | |
${string#*chars} | 从 string 字符串第一次出现 chars 的位置开始,截取 chars 右边的所有字符 |
%string:*chars=% | |
${string##*chars} | 从 string 字符串最后一次出现 chars 的位置开始,截取 chars 右边的所有字符 |
${string%%chars*} | 从 string 字符串第一次出现 chars 的位置开始,截取 chars 左边的所有字符 |
${string%chars*} | 从 string 字符串最后一次出现 chars 的位置开始,截取 chars 左边的所有字符 |
应用
shell应用
获取父级目录
#获取sh文件同级目录WORKDIR
WORKDIR=$(cd "$(dirname "$0")"; pwd)
#获取WORKDIR父目录PARENT
PARENT=${WORKDIR%/*}
条件执行
例如test.sh 1101.只会执行124步
mode=$1
echo $mode
if [ "${mode:0:1}" == "1" ]
then
echo "执行1"
fi
if [ "${mode:1:1}" == "1" ]
then
echo "执行2"
fi
if [ "${mode:2:1}" == "1" ]
then
echo "执行3"
fi
if [ "${mode:3:1}" == "1" ]
then
echo "执行4"
fi
bat应用
条件执行
@echo off
set mode=%1
if "1" == "%mode:~0,1%" (
echo 执行1
)
if "1" == "%mode:~1,1%" (
echo 执行2
)
if "1" == "%mode:~2,1%" (
echo 执行3
)
if "1" == "%mode:~3,1%" (
echo 执行4
)