pathname=$(cat $HOME/.rm.cfg)
if [ ! -z $pathname/$1 ]
.rm.cfg
is a file that contains the following directory
Looks like your $pathname includes more than one word. Could be multiple lines in your .rm.cfg file, or perhaps the path includes spaces. Anyway, you end up with
if [ ! -z word word word/$1 ]
which is no good. If you're just expecting a single path and want to protect against the path containing whitespace, change your if line to
if [ ! -z "$pathname/$1" ]
I had faced same error binary operator expected where I am getting more then one word for some variable.when I used it as mention below.
if [ ! -z ${variable} ];
So for resolve this error I changed it to :
if [[ ! -z ${variable} ]];