在脚本中获取输入并确保只有一个参数

在脚本中获取输入并确保只有一个参数

我目前正在做一项作业,其中我有一个脚本,基本上只是学习使用带有不同正则表达式的 grep 。

我编写了脚本,除了第一部分,其中要求我将文件作为输入,然后脚本基于该文件运行。

我有输入提示,之后是读取命令,grep 命令。一切正常,我只需要实现一个 if 语句,我相信如果只给定 1 个参数,它将运行脚本。 - 分配表明脚本仅应在给出 1 个且仅 1 个参数的情况下运行,否则应显示错误消息。

谢谢,

答案1

一个脚本内$#会扩展位置参数的数量。我们可以用它来检查是否传递了正确数量的选项,如果不正确则立即退出:

#!/bin/sh

if [ "$#" -ne 1 ]; then
    printf 'ERROR! You must provide one and only one argument!\n' >&2
    exit 1
fi

您可以在以下地方阅读相关内容:

2.5.1 位置参数

if 条件结构

2.7.2 重定向输出

相关内容