linux - bash script if statement not displaying true -


i trying quick script check file system prior running resize2fs.

#!/bin/bash var2=$(dumpe2fs -h /dev/mapper/mylv | grep "filesystem state:") var1=test echo $var1 echo $var2  if [ "$var2" = "filesystem state: clean" ];         echo "clean" else         echo "dirty" fi 

my results

server1:~ # ./filesystest.sh dumpe2fs 1.38 (30-jun-2005) test filesystem state: clean dirty 

it seems though var2 in fact "filesystem state: clean" still shows false.

you have characters (maybe spaces) in var2.

instead of saying:

if [ "$var2" = "filesystem state: clean" ]; 

say:

if [[ "$var2" =~ "filesystem state: clean" ]]; 

edit: in fact, entire script can written as:

dumpe2fs -h /dev/mapper/mylv | grep -q "filesystem state: clean" && echo "clean" || echo "dirty" 

Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -