Question

I have this simple script, which wouldn't run because of the line with if [ ... ] Could anyone tell me what is wrong with this?

#! /bin/sh
if [ $# -ne 2 AND $# -ne 3 ]
then
    echo "Usage $0 <input> <output> [<comment>]"
    exit 1
fi;

Thanks!

Was it helpful?

Solution

Try the following :

#! /bin/sh
if [ $# -ne 2 -a $# -ne 3 ]
then
    echo >&2 "Usage $0 <input> <output> [<comment>]"
    exit 1
fi

Or :

#! /bin/sh
if [ $# -ne 2 ] && [ $# -ne 3 ]
then
    echo >&2 "Usage $0 <input> <output> [<comment>]"
    exit 1
fi

If you'd like to use bash :

#! /bin/bash
if [[ $# -ne 2 && $# -ne 3 ]]
then
    echo >&2 "Usage $0 <input> <output> [<comment>]"
    exit 1
fi
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top