How to compare strings in Bash

前端 未结 10 1925
眼角桃花
眼角桃花 2020-11-22 02:48

How do I compare a variable to a string (and do something if they match)?

10条回答
  •  天命终不由人
    2020-11-22 03:31

    Using variables in if statements

    if [ "$x" = "valid" ]; then
      echo "x has the value 'valid'"
    fi
    

    If you want to do something when they don't match, replace = with !=. You can read more about string operations and arithmetic operations in their respective documentation.

    Why do we use quotes around $x?

    You want the quotes around $x, because if it is empty, your Bash script encounters a syntax error as seen below:

    if [ = "valid" ]; then
    

    Non-standard use of == operator

    Note that Bash allows == to be used for equality with [, but this is not standard.

    Use either the first case wherein the quotes around $x are optional:

    if [[ "$x" == "valid" ]]; then
    

    or use the second case:

    if [ "$x" = "valid" ]; then
    

提交回复
热议问题