I need to check if the variable has value of string which starts with specified substring.
In Python it would be something like this:
foo = \'abcdef\
You can also do regex matching:
if [[ $foo =~ ^abc ]]
For more complex patterns, I recommend using a variable instead of putting the pattern directly in the test:
bar='^begin (abc|def|ghi)[^ ]* end$'
if [[ $foo =~ $bar ]]
Also:
foo='abcdef'
pattern='abc*'
case "$foo" in
$pattern) echo startswith ;;
*) echo otherwise ;;
esac
It's very simple but looks a bit odd:
if [[ "$foo" == abc* ]]; then ...
One would assume that ksh would expand the pattern with the files in the current directory but instead, it does pattern matching. You need the [[
, though. Single [
won't work. The quotes are not strictly necessary if there are no blanks in foo
.