명령 줄 인수로 숫자를 어떻게 추가합니까?

명령 줄에서 1 개의 숫자를 추가하고 기본값처럼 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 

댓글

  • echo ing 대신 추가하기 만하면 read 직접 입력 할 수 있습니다. read -p 'Please enter a number: ' yournumber

답변

공백으로 인해 오류가 발생합니다.

“Please enter a number :”라는 메시지가 표시 될 때 사용자가 번호를 입력하도록하려면 다음과 같이 스크립트를 사용할 수 있습니다. 일부 수정 :

#!/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. 

주석

  • 단순한 정수 연산을 수행하기 위해 bc를 실행하는 이유는 무엇입니까?

Answer

“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." 

댓글

  • 알겠습니다! 이제 알겠습니다. 단지 간격 문제였습니다. 나는 이것을 정말로 생각했다. 도움을 주셔서 감사합니다.
  • $<를 사용할 필요가 없습니다 '

/ div> 산술 표현식 안에 있습니다. 예 : num=5;def=10;echo "sum = $((num + def))"

Answer

원하는 작업을 수행하는 가장 빠른 방법입니다.

#!/bin/bash echo "The sum of $1 + 10 is $(($1 + 10))." 

출력 :

creme@fraiche:~/$ ./script.sh 50 The sum of 50 + 10 is 60. 

댓글

  • 위험 할 수 있습니다. ./script.sh '((PATH=0)+(ANY_OTHER_VARNAME=[ANY INTEGER]))'
  • 를 사용해보십시오.

  • @mikeserv 매우 정확하지만 연습 I ' 문제인지 확실하지 않습니다. 의견을 보내 주셔서 감사합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다