我需要检查变量是否具有以指定子字符串开头的字符串值。KSH检查字符串是否以子字符串开头
在Python这将是这样的:
foo = 'abcdef'
if foo.startswith('abc'):
print 'Success'
什么是KSH检查是否STRIG $foo
开始与子bar
最明确的方法是什么?
我需要检查变量是否具有以指定子字符串开头的字符串值。KSH检查字符串是否以子字符串开头
在Python这将是这样的:
foo = 'abcdef'
if foo.startswith('abc'):
print 'Success'
什么是KSH检查是否STRIG $foo
开始与子bar
最明确的方法是什么?
这很简单,但看起来有点奇怪:
if [[ "$foo" == abc* ]]; then ...
人们会认为KSH将扩大在当前目录下的文件的模式,而是,它的模式匹配。不过,您需要[[
。单[
将无法正常工作。如果foo
中没有空格,则引号不是必需的。
你也可以做正则表达式匹配:
if [[ $foo =~ ^abc ]]
对于更为复杂的模式,我建议使用一个变量,而不是直接把图案测试:
bar='^begin (abc|def|ghi)[^ ]* end$'
if [[ $foo =~ $bar ]]
在双括号内,即使'$ foo'为空或未设置,也不需要引号。 – 2010-11-02 18:32:24
该解决方案看起来完全像我一直在寻找的东西。但不幸的是,它不起作用在我的ksh。它看起来像ksh88,我猜这些技巧太老了。 – z4y4ts 2010-11-03 09:30:51
如果'$ foo'中包含“=”,该怎么办? – user443854 2013-01-18 16:40:35