Re: bash usage.
peter@easthope.ca writes:
> PROBLEM
> Given a storage device, /dev/GRN, and mount point, /home/peter/testdir/,
> determine in a shell script whether /dev/GRN is mounted or something is
> mounted on /home/peter/testdir/.
>
> ATTEMPTED SOLUTION
> Create testdir and execute this script.
>
> #!/bin/bash
> # Demonstrate use of "mountpoint" in a script to determine
> # whether a directory has a device mounted on it.
> #
> WorkingDirectory=/home/peter/testdir
> if [ mountpoint $WorkingDirectory ]
> then
> echo A volume is mounted on $WorkingDirectory.
> else
> echo Nothing mounted on $WorkingDirectory.
> fi
>
> This is my result.
> $ ./testscript
> ./testscript: line 6: [: mountpoint: unary operator expected
> Nothing mounted on /home/peter/testdir.
>
> According to 'man mountpoint', it returns 0 if something is mounted.
> So why the complaint from
> if [ mountpoint $WorkingDirectory ] ?
>
write it like this:
if mountpoint $WorkingDirectory; then
echo A Volume is mounted on $WorkingDirectory.
else
echo Nothing mounted on $WorkingDirectory.
fi
The "[" is actually a command (usually implemented by the shell itself)
that has its own expression syntax. See man test(1) for details.
--
regards,
kushal
Reply to: