免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: axl_chan
打印 上一主题 下一主题

如何在ksh中实现呢?很急。。。 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-10-11 19:00 |只看该作者

如何在ksh中实现呢?很急。。。

$>str="1234"
$>[ "${str%%~*}" ] && echo false || echo ture
false
$>str="~1234"
$>[ "${str%%~*}" ] && echo false || echo ture
ture

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
12 [报告]
发表于 2005-10-11 22:23 |只看该作者

如何在ksh中实现呢?很急。。。

原帖由 "styr"]%~*}"  发表:
&& echo false || echo ture
ture

是减号(-),不是波浪号(~)吧

  1. [ ${str%%-*} ]
复制代码

论坛徽章:
0
13 [报告]
发表于 2005-10-12 11:22 |只看该作者

如何在ksh中实现呢?很急。。。

呵呵,看错了。以为楼主要的开头是 ~       

论坛徽章:
0
14 [报告]
发表于 2005-10-12 13:40 |只看该作者

如何在ksh中实现呢?很急。。。

原帖由 "axl_chan" 发表:

这是我的结果:
# str="-r"
# awk 'BEGIN{print('"$str"'~/^-/)?"true":"false"}'
awk: syntax error near line 1
awk: illegal statement near line 1
#

我的OS是solaris 10


试一下:
echo $str|awk '{if($0 ~ /^-/) print "true"; else print "false"}'

论坛徽章:
0
15 [报告]
发表于 2005-10-12 20:55 |只看该作者

如何在ksh中实现呢?很急。。。

pattern matching 用 case 結構更方便
str="-r"
case "$str" in
   -*) echo true ;;
    *) echo flase ;;
esac
用任何支援 posix的awk可如此,我的是 gawk ,所以用 posix mode 是不用 gawk
的特性
[victor@localhost ~]$  str='-r'
[victor@localhost ~]$ awk --posix -v x="$str" 'BEGIN{if ( x ~ /^-/ ){print "true" ;}else { print "flase" ;}}'
true
[victor@localhost ~]$ str="r"
[victor@localhost ~]$ awk --posix -v x="$str" 'BEGIN{if ( x ~ /^-/ ){print "true" ;}else { print "flase" ;}}'
flase
[victor@localhost ~]$
當然沒寂寞烈火兄的像 C 的條件操作符簡潔,但老的 awk 也支援
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP