プログラムは変数値を印刷しません。

プログラムは変数値を印刷しません。

だからこれは私のコードです

#! /bin/bash

echo -n "Please enter the first integer: "
read $num1
echo -n "Please enter the second integer: "
read $num2

if [[ "$num1" -eq "$num2" ]];
then
    echo "$num1  is -eq $num2"
fi

このプログラムの問題は、印刷されず、ステートメントの後の値がtrueであること$num1です$num2

しかし、整数入力と比較をよりよく処理する方法はありますか?

答え1

@Bodoが言ったように、あなたのread声明は間違っています。

command がある場合、read $num1シェルは num1 値 ("fred" と仮定) を探し、それを実行してread fred入力行を取得し、変数 fred に保存します。

(場合によっては)num1に現在の値がない場合、シェルが実行され、readその値が変数に保存されますREPLY

一般的に言えばいつも変数を参照してください。これを行うと、read "$num1"シェルがread ""変数を有効な名前ではなく空の文字列に変換すると、エラーメッセージが表示されます。

関連情報