linuxbashif-statementnegate

Negate if condition in bash script


I'm stuck at trying to negate the following command:

wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -eq 0 ]]; then
        echo "Sorry you are Offline"
        exit 1

This if condition returns true if I'm connected to the internet. I want it to happen the other way around but putting ! anywhere doesn't seem to work.


Solution

  • You can choose:

    if [[ $? -ne 0 ]]; then       # -ne: not equal
    
    if ! [[ $? -eq 0 ]]; then     # -eq: equal
    
    if [[ ! $? -eq 0 ]]; then
    

    ! inverts the return of the following expression, respectively.