2つの数字をコマンドライン引数として使用するBashスクリプトを作成します。画面上の2つの数字のうち大きい方を印刷します。

2つの数字をコマンドライン引数として使用するBashスクリプトを作成します。画面上の2つの数字のうち大きい方を印刷します。

どのコマンドを使用する必要がありますか?二重括弧を使用する必要がありますか?これら2つの数字で40 + 30を使用すると、どのように出力する必要がありますか?今始まったばかりで、助けが必要です。

答え1

算術評価を使用できるようにbashに言及しました(man bash算術評価を参照して検索)。

スクリプト例:

#!/bin/bash

a=$1
b=$2

if (( a > b )); then
    printf '%d\n' "$a"
else
    printf '%d\n' "$b"
fi

入力内容を確認することを忘れないでください!例:

if [[ ! "$1" =~ ^[[:digit:]]+$ ]] ||
   [[ ! "$2" =~ ^[[:digit:]]+$ ]]
then
    echo 'One of the arguments is not a number' >&2
    exit 1
fi

答え2

echo $(($1 > $2 ? $1 : $2))

しかし、そこにエラーチェックを追加したいかもしれません。たとえば、

  • パラメータ数($#)は正しいですか?
  • 引数が正しい形式の整数ですか?(-)+([0-9])

関連情報