사용자 키보드 입력을 기반으로 실행 횟수를 유지하려면 bash에 스크립트를 작성해야 합니다.
if i type "1" i want a variable $h to increment +1
if i type "2" i want a variable $L to decrement -1
변수 $c가 처음 두 변수의 합을 출력하기를 원합니다.
나는 시도했다: 아무 소용이 없었다
#!/bin/bash
h='0'
l='0'
read card
if [$card='1']
then
let "h++"
fi
if [$card='2']
then
let "l--"
fi
c=$(($h+$l))
echo $c`
내가 어디서 엉망이 되었나요?
답변1
[ $card -eq 1 ]
- 오류,[
공백이 있어야 하며-eq
산술 비교에 사용해야 합니다.$c
<- 뒤에 백틱이 있으므로 제거하세요.- 잘못된 것은 없습니다. 단지 제안일 뿐입니다.
let var++
큰따옴표가 필요하지도$((var++))
않고 필요하지도 않습니다$
(말하자면 연산자를 "존중"합니다). - 틀린 것은 아니지만 불필요함: 숫자 할당에 작은 따옴표 사용
h=0
"실행 횟수"라는 전체 개념에 문제가 있을 수 있습니다. 스크립트가 연속적이므로 정의에 따라 스크립트가 종료되면 변수가 사라집니다. 쉘 작동 방식 때문에 실행 횟수가 계산되지 않습니다. 아마도 당신이 원하는 것은 카운터를 임시 파일로 출력한 다음 다시 읽는 것입니다. 또는 무한 while 루프에서 스크립트를 실행하십시오. 그것은 다음과 같습니다:
#!/bin/bash
h=0
l=0
while read user_input;
do
[ "$user_input" -eq 1 ] && ((h++))
[ "user_input" -eq 2 ] && ((l--1))
echo "So far h is $h, and l is $l"
done