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