boolean expression in sh script
-
12-12-2019 - |
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!
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