Shell 如何使一些脚本参数成为强制性的
Shell how to make some of the script arguments mandatory
我想要 运行 一个接受 3 个命令行选项的脚本 -o|q|i
。我想让 q
和 o
但不是 i
所以 运行 命令 有 看起来像:
script.sh -q <some-text> -o <some-other-text>
下面的代码使其中的 none 成为强制性的。我怎样才能做到这一点?
for arg in "$@"
do
case $arg in
-q) req=""
shift shift ;;
-o) out=""
shift shift ;;
-i|) ind=""
shift shift ;;
esac
done
我通过使用以下代码检查变量 req
和 out
在 for 循环后是否具有某些值来完成这项工作:
if [[ -z $out || -z $req ]]
then
echo "ERROR: -q and -o are mandatory arguments. See usage: \n";
exit 1;
fi
我想要 运行 一个接受 3 个命令行选项的脚本 -o|q|i
。我想让 q
和 o
但不是 i
所以 运行 命令 有 看起来像:
script.sh -q <some-text> -o <some-other-text>
下面的代码使其中的 none 成为强制性的。我怎样才能做到这一点?
for arg in "$@"
do
case $arg in
-q) req=""
shift shift ;;
-o) out=""
shift shift ;;
-i|) ind=""
shift shift ;;
esac
done
我通过使用以下代码检查变量 req
和 out
在 for 循环后是否具有某些值来完成这项工作:
if [[ -z $out || -z $req ]]
then
echo "ERROR: -q and -o are mandatory arguments. See usage: \n";
exit 1;
fi