Hi Rony, Rajeev, On Thu, Feb 28, 2013 at 12:01 AM, Rajeev R. K. <[email protected]> wrote: > > On 27 February 2013 23:40, [email protected] <[email protected]> > wrote: > > > > Thanks Rajeev and Binand for your tips. I noticed a '-a' option in the if > > statement so will this below work? > > > > If [grep -q "/home" mtab -a grep -q "/backup" mtab ] then......... > > > > Doubtful, since the square brackets are little more than a shorthand > for encapsulating the conditional and comparative expression syntax of > the test command(check man test), and in this case, test would not > know how to evaluate the expressions. In any case, my earlier point > about having independent tests still stands from a usability > standpoint. >
You can omit the square brackets and use "-a" as: if grep -q /home /etc/mtab -a grep -q /backup /etc/mtab ; then ... Furthermore, to avoid invalid matches such as "/home1" or "/export/home", you can use the "-w" option, if your version of grep supports it (GNU grep does). However, I wouldn't recommend: if [ $( grep -cwE '/(home|backup)' /etc/mtab ) = 2 ]; then ... as some versions of Linux allow a file system to be mounted multiple times. So, we would get a false positive if /home is mounted twice, but /backup is not. A method that's both concise and readable is: home_mounted=`grep -w /home /etc/mtab` backup_mounted=`grep -w /backup /etc/mtab` if [ "$home_mounted" -a "$backup_mounted" ] ; then ... Regards, Osric Xavier Fernandes PS: Great to have the mailing list back. Good job team! -- http://mm.ilug-bom.org.in/mailman/listinfo/linuxers

