명령줄에서 1개의 숫자와 기본 숫자를 추가하려고 합니다. 예를 들어, 사용자가 숫자 50을 입력하면 스크립트는 10(기본 숫자)을 추가합니다.
./script 50
The sum of 50+ 10 is 60.
이것이 내가 지금까지 가지고 있는 것입니다.
echo -n "Please enter a number: "
read number
default = 10
sum = $((default + number)) // this line does not seem to work
echo "The sum of $number and 10 is $sum."
내 문법에 문제가 있는 걸까요? 내가 올바른 길을 가고 있는지 잘 모르겠습니다. 내가 전화번호를 잘못 추가했나요? 대신 awk를 사용해야 하나요?
let sum = $default + $number
답변1
"default = 10"과 "sum = $" 사이에는 공백이 없어야 하며, 기본값 앞에는 $가 있어야 하고 변수에서 읽을 숫자도 있어야 합니다.
그러면 스크립트는 아래와 같이 예상한 대로 작동합니다.
#!/bin/bash
echo -n "Please enter a number: "
read number
default=10
sum=$(($default + $number))
echo "The sum of $number and 10 is $sum."
답변2
이것은 귀하가 요구하는 것을 달성하는 가장 빠른 방법입니다:
#!/bin/bash
echo "The sum of $1 + 10 is $(($1 + 10))."
산출:
creme@fraiche:~/$ ./script.sh 50
The sum of 50 + 10 is 60.
답변3
공백으로 인해 오류가 발생했습니다.
"숫자를 입력하세요:"라는 메시지가 표시될 때 사용자가 숫자를 입력하도록 하려면 스크립트를 사용하여 다음과 같이 몇 가지 수정 작업을 수행할 수 있습니다.
#!/bin/bash
echo -n "Please enter a number: "
read number
default=10
sum=`echo "$number + $default" | bc`
echo "The sum of $number and 10 is $sum."
확인하다:
./temp.sh
Please enter a number: 50
The sum of 50 and 10 is 60.
사용자가 스크립트에 대한 인수로 숫자를 입력하도록 하려면 다음 스크립트를 사용할 수 있습니다.
#!/bin/bash
number="$1"
default=10
sum=`echo "$number + $default" | bc`
echo "The sum of $number and 10 is $sum."
확인하다:
./temp.sh 50
The sum of 50 and 10 is 60.