(1)判断一个字符串是不是全为数字
01
02
03
04
05
06
07
08
09
10
11
|
#!/bin/sh
# 该变量就是要判断的变量
VAR=
"1234908"
RET=`
expr
match $VAR
"[0-9]*$"
`
if
[ ${RET} -gt 0 ];
then
echo
"It is a Number!"
else
echo
"Not a Number!"
fi
|
另外要注意:用这种方式来判断负数的时候,也认为不是全为数字的,因为负数中带了一个负号,就不是数字。
(2)取字符串的第1个字符
1
2
|
VAR=
"[Sun Feb 20 03:10:51 2011]"
echo
${VAR:0:1}
|
这样输出的就是第一个字符“[”了。详细用法请看这个链接。
(3)从一个字符串的尾部开始,删除从指定字符开始直到最后一个字符
如下命令:
1
|
STR=`
ethtool
eth0 |
grep
Speed |
awk
'{print $2}'
`
|
执行之后,变量 STR 中保存的是字符串“1000Mb/s”(不含引号),现在我要删除“Mb/s”,只剩下“1000”,可以这样做:
1
|
echo
${STR%M*}
|
这表示从右边开始,删除第一个 M 及右边的字符。
(4)截取字段串,可以考虑用删除掉多余字符串的方法来实现,例如:
截取字符串 [192.168.3.11] 中的方括号里的IP地址, 用将方括号删除的方法,即可实现同样的效果:
1
2
3
|
A=
"[192.168.3.11]"
B=`
echo
$A |
sed
's/\ [//'
|
sed
's/]//'
`
echo
$B
|
输出即为:192.168.3.11
注意:上面的第2行代码中,\ 和 [ 之间特意多加了一个空格(其实不应该有空格的),是因为本站安装的LaTex插件的影响。
其中,两个sed命令分别将左括号[及右括号]替换为了空字符串,相当于删除了它们。左方括号在sed中需要转义,所以要以 \ 开头。