Shell 中字符串的常用操作如下:
操作 | 说明 |
---|---|
${#string} | 返回 $string 的长度 |
${string:position} | 在 $string 中,从位置 $postion 之后开始提取子串 |
${string:postion:length} | 在 $string 中,从位置 $postion 之后开始提取长度为 $length 的子串 |
${string#substring} | 从变量 $string 开头开始删除最短匹配 $substring 子串 |
${string##substring} | 从变量 $string 开头开始删除最长匹配 $substring 子串 |
${string%substring} | 从变量 $string 结尾开始删除最短匹配 $substring 子串 |
${string%%substring} | 从变量 $string 结尾开始删除最长匹配 $substring 子串 |
${string/substring/replace} | 使用 $replace 来代替第一个匹配的 $substring |
${string/#substring/replace} | 如果 $string 前缀匹配 $substrng 就用 $replace 来代替来代替匹配 $substring |
${string/%substring/replace} | 如果 $string 后缀匹配 $substring 就用 $replace 来代替匹配 $substring |
操作 | 说明 |
---|---|
${value:-word} | 如果变量名存在且非 null,则返回变量的值。否则,返回 word 字符串 |
${value:=word} | 如果变量名存在且非 null,则返回变量的值。否则,设置这个变量值为 word,并返回值 |
${value:? “not defined”} | 如果变量名存在且非 null,则返回变量的值。否则显示变量名:message,并推出当前的命令或脚本 |
${value:+word} | 如果变量名存在且非 null,则返回 word,否则返回 null |
在 Shell 中,计算字符串长度有三种方式:
操作 | 说明 |
---|---|
${#chars} | 效率最高 |
$chars|wc -m | 查看字符个数 |
chars") | 计算字符串长度 |
计算 n 的 m 次方命令如下:
n**m
(()) 用于执行简单的整数运算,很常用,且效率高,只需要将特定的算术表达式用 “$((” 和 “))” 括起,不支持小数运算。
let 赋值表达式 功能等同于 ((赋值表达式)):
i=2 let i=i+8 echo $i #10
expr命令一般用于整数值,但也可以用于字符串,用来求表达式变量的值,同时 expr 也是一个手工命令行计算器:
expr 2 + 3 #数字和运算符之间必须加空格
或者:
expr $[2+4]
read -p "Please input a number:" a expr $a + 0 &>/dev/null [ $? -eq 0 ] && echo int || echo chars echo "scale=2; 5.23/3.13" | bc echo "obase=2;8" | bc #把8转成2进制