프로그램이 변수 값을 인쇄하지 않습니다.

프로그램이 변수 값을 인쇄하지 않습니다.

그럼 이게 내 코드야

#! /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 ""변수의 유효한 이름이 아닌 빈 문자열로 변환할 때 오류 메시지가 표시됩니다.

관련 정보