分页: 1 / 1

如何判断参数是否为合法的shell变量名

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

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还没有学过。上面的是一道习题。 :em06

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
:em05