Shell 使用正则表达式

方法一:

echo $VAR | grep -q '^A' && command....
方法二:
case $VAR in
A*) command .... ;;
esac

我自己想到一个方法:

expr"$var":'A'

如果以A开头返回1,否则返回零

如果我要验证的是一个特殊字符呢?例如说:/

readvar

expr"$var":"^V"

显然是不行的,如这个^V应该在哪儿用呢?

shell脚本变量,变量中数据遇到#后就保存到另一个变量中举例:

$path=192.168.0.128#100#/etc/passwd#保存到3个变量中a,b,c   
$a=192.168.0.128 
$b=100 
$c=/etc/passwd
如何实现,给个代码就行

最佳答案

像这个应该是把数据分割后用数组来保存的,如用awk方法

# a=(`echo $path | awk -F# '{for(i=1;i<=NF;i++)print $i }'`)
# echo ${a[0]}
192.168.0.128
# echo ${a[1]}
100
# echo ${a[2]}
/etc/passwd

path1=192.168.0.128#100#/etc/passwd#
$a=`echo $path1 | awk -F"#" '{print $1}'`
$b=`echo $path1 | awk -F"#" '{print $2}'`
$c=`echo $path1 | awk -F"#" '{print $3}'`

相关推荐