KSH check if string starts with substring

后端 未结 3 1326
我寻月下人不归
我寻月下人不归 2020-12-17 15:02

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\         


        
相关标签:
3条回答
  • 2020-12-17 15:26

    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 ]]
    
    0 讨论(0)
  • 2020-12-17 15:28

    Also:

    foo='abcdef'
    pattern='abc*'
    
    case "$foo" in
        $pattern) echo startswith ;;
        *) echo otherwise ;;
    esac
    
    0 讨论(0)
  • 2020-12-17 15:29

    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.

    0 讨论(0)
提交回复
热议问题