명령줄 인수로 숫자를 추가하는 방법은 무엇입니까?

명령줄 인수로 숫자를 추가하는 방법은 무엇입니까?

명령줄에서 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.

관련 정보