分页: 1 / 1
如何判断参数是否为合法的shell变量名
发表于 : 2009-08-09 19:42
由 dengroj
如何判断参数是否为合法的shell变量名。
想写一个小程序。譬如叫abc
$./abc foo_ad
yes
$./abc 123
no
$
应如何实现呢。。

Re: 如何判断参数是否为合法的shell变量名
发表于 : 2009-08-09 19:51
由 O_O_BOT
echo 2f2oo_2a3dd | awk '/^[[:alpha:]][[:alnum:]]*/{print "yes";next}{print "no"}'
echo f2oo_2a3dd | awk '{ if (/^[[:alpha:]][[:alnum:]]*/){print "yes";}else{print "no"}}
#!/bin/sh
if echo "$1" | grep -q '^[_a-zA-Z][_a-zA-Z0-9]*$'
then
echo "yes"
else
echo "no"
fi
Re: 如何判断参数是否为合法的shell变量名
发表于 : 2009-08-09 20:09
由 dengroj
有没有用grep实现,或者sed实现的。awk还没有学过。上面的是一道习题。

Re: 如何判断参数是否为合法的shell变量名
发表于 : 2009-08-09 20:16
由 dengroj
看到了。。在下面。谢谢。。oo
Re: 如何判断参数是否为合法的shell变量名
发表于 : 2009-08-25 13:05
由 tusooa
代码: 全选
$1="Hello world" && echo 'yes' || echo 'no'
改进版:
代码: 全选
case $1 in
*" "*)echo 'no';exit 1;;
esac
$1="Hello world" >/dev/null 2>&1 && echo 'yes' && exit 0
exit 1
Re: 如何判断参数是否为合法的shell变量名
发表于 : 2009-08-25 14:19
由 O_O_BOT