사용자가 입력한 숫자의 합을 계산하는 스크립트를 원합니다.
지금까지 나는 다음을 가지고 있습니다 :
#!/bin/bash
add() {
sum=0
for num
do
sum=$((sum +num))
done
}
echo "$sum"
내가 사용하는 명령은 다음과 같습니다
add 4 -3 9 12
반환값은 다음과 같습니다: 빈 줄 - 단어가 아니라 빈 줄입니다. username~/folder:>
내가 무엇을 놓치고 있나요?
권한은 rwxr xr x
경로의 폴더를 사용하여 대화형 셸을 실행하고 있는데 헤매고 있습니다.
답변1
스크립트를 약간 수정해 보겠습니다.
$ cat add.sh
#!/bin/bash
add() {
sum=0
for num
do
sum=$((sum +num))
done
}
add "$@"
echo "sum=$sum"
이제 스크립트를 실행해 보겠습니다.
$ bash add.sh 4 -3 9 12
sum=22
효과가있다.
유일한 변경 사항은 add "$@"
echo하기 전에 함수를 호출한다는 것입니다 sum
.
답변2
그냥 포함시키려고실제이를 수행하는 간단한 방법:
#!/bin/bash
IFS=+
bc <<< "$*"
이것을 사용하십시오 (실행 권한이 있는 파일에서 호출될 때 add.sh
):
$ ./add.sh 4 -3 9 12
22
$
~/.bashrc
아니면 그냥 함수로 정의하거나 작성 중인 더 큰 bash 스크립트로 정의하세요.
add() (
IFS=+
bc <<< "$*"
)