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
Post a Comment