When are square brackets required in a Bash if statement?
问题 Usually, I use square brackets in the if statement: if [ "$name" = 'Bob' ]; then ... But, when I check if grep succeeded I don't use the square brackets: if grep -q "$text" $file ; then ... When are the square brackets necessary in the if statement? 回答1: The square brackets are a synonym for the test command. An if statement checks the exit status of a command in order to decide which branch to take. grep -q "$text" is a command, but "$name" = 'Bob' is not--it's just an expression. test is a