sh/bash/dash/ksh/zsh等Shell脚本
-
dengroj
- 帖子: 39
- 注册时间: 2009-06-06 8:57
#1
帖子
由 dengroj » 2009-08-09 19:42
如何判断参数是否为合法的shell变量名。
想写一个小程序。譬如叫abc
$./abc foo_ad
yes
$./abc 123
no
$
应如何实现呢。。

本人花580元从国嵌淘宝店上购买的正版,现在尝试创业,低价转让。qq:1531267696
-
O_O_BOT
- 帖子: 2461
- 注册时间: 2009-05-20 19:32
#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
-
dengroj
- 帖子: 39
- 注册时间: 2009-06-06 8:57
#3
帖子
由 dengroj » 2009-08-09 20:09
有没有用grep实现,或者sed实现的。awk还没有学过。上面的是一道习题。

本人花580元从国嵌淘宝店上购买的正版,现在尝试创业,低价转让。qq:1531267696
-
dengroj
- 帖子: 39
- 注册时间: 2009-06-06 8:57
#4
帖子
由 dengroj » 2009-08-09 20:16
看到了。。在下面。谢谢。。oo
本人花580元从国嵌淘宝店上购买的正版,现在尝试创业,低价转让。qq:1531267696
-
tusooa
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
-
联系:
#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 次。