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

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
dengroj
帖子: 39
注册时间: 2009-06-06 8:57

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

#1

帖子 dengroj » 2009-08-09 19:42

如何判断参数是否为合法的shell变量名。
想写一个小程序。譬如叫abc
$./abc foo_ad
yes
$./abc 123
no
$
应如何实现呢。。
:em06
本人花580元从国嵌淘宝店上购买的正版,现在尝试创业,低价转让。qq:1531267696
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

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

#2

帖子 O_O_BOT » 2009-08-09 19:51

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
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
头像
dengroj
帖子: 39
注册时间: 2009-06-06 8:57

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

#3

帖子 dengroj » 2009-08-09 20:09

有没有用grep实现,或者sed实现的。awk还没有学过。上面的是一道习题。 :em06
本人花580元从国嵌淘宝店上购买的正版,现在尝试创业,低价转让。qq:1531267696
头像
dengroj
帖子: 39
注册时间: 2009-06-06 8:57

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

#4

帖子 dengroj » 2009-08-09 20:16

看到了。。在下面。谢谢。。oo
本人花580元从国嵌淘宝店上购买的正版,现在尝试创业,低价转让。qq:1531267696
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

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

#5

帖子 tusooa » 2009-08-25 13:05

代码: 全选

$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
上次由 tusooa 在 2009-09-29 21:08,总共编辑 1 次。

代码: 全选

] ls -ld //
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

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

#6

帖子 O_O_BOT » 2009-08-25 14:19

:em05
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
回复