我需要檢查變量是否具有以指定子字符串開頭的字符串值。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