Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1664
  • Last Modified:

"unexpected operator" error in sh script

I made a wrapper script so my password isn't logged into bash_history and also so I don't have to do so much typing for a few common "vmrun" commands.

It works fine but, unfortunately, I am getting the following error:

$ ./vvmrun -p list
./vvmrun: line 40: [: -v: unary operator expected

On another computer the error is "unexpected operator."

Help appreciated...

Thanks,
Frank

#!/bin/sh
# Define Version Number & Description
version="1.0"
desc="Wrapper for vmrun"
program=`echo $0 |sed -e 's#^\./##'`
# Define help
help="
$program $version, $desc\n
Usage: $program \[Options\] command\n
Example: $program -p > command\n
\n
Options \n
\n
-s Show the command that will be run--no action taken.\n
-p Prompt for password.\n
-H Remote hostname (default=local hostname).\n
"   # see wget -h for "help" layout ideas

# define variables
host=`hostname`

# if no arguments then print help and exit
if [ $# = 0 ]; then
    echo $help && exit
fi

# options followed by a ":" take arguments--";" optional arguments
while getopts "hspH:" option; do
    case "$option" in
	h) echo $help && exit;;
	s) show=1;;
	p) passwd=1;;
	H) host="$OPTARG";;
	[?]) echo "Exiting due to illegal option" && exit;;
    esac
done
shift `expr $OPTIND - 1`

# do stuff here
if ! [ -v $passwd ] ; then 
    stty -echo
    read -p "Password: " passw; echo
    stty echo
    command="vmrun -T server -h http://$host:8222/sdk -u frank -p $passw"
else
    command="vmrun -T server -h http://$host:8222/sdk"
fi

if ! [ -v $show ] ; then 
    echo $command $@
else 
    $command $@
fi
exit 0

Open in new window

0
ibanja
Asked:
ibanja
2 Solutions
 
Maciej SsysadminCommented:
There is no such test like -v.
Refer to "man test" for possible tests.
0
 
TintinCommented:
if ! [ -v $passwd ] ; then


should be

if  [  "$passwd" -eq 1 ] ; then

or

if  [ -n "$passwd" ] ; then

0
 
ibanjaAuthor Commented:
Not sure where I got the "-v" from.

Thanks!
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now