スクリプトから入力を受け取り、パラメータが1つしかないことを確認してください。

スクリプトから入力を受け取り、パラメータが1つしかないことを確認してください。

私は現在、基本的にさまざまな正規表現でgrepを使用する方法を学ぶスクリプトがある課題を進めています。

ファイルを入力として提供し、そのファイルに基づいてスクリプトが実行される最初の部分を除いてスクリプトを作成しました。

入力プロンプトと読み取りコマンド、grepコマンドがあります。すべてがうまくいきます。パラメータが1つだけ与えられたら、スクリプトを実行すると思われるifステートメントを実装するだけです。 - 割り当ては、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 位置パラメータ

条件付き構造の場合

2.7.2 出力リダイレクト

関連情報