나는 이 배시 스크립트입니다 쉐퍼드도 줄을 16 문제가 있었다. 어떻게 시행하십시오 결과 및 추가 이전 15 호선 하지만 줄을 가변적입니다 16?
#!/bin/bash
num=0
metab=0
for ((i=1; i<=2; i++)); do
for j in `ls output-$i-*`; do
echo "$j"
metab=$(cat $j|grep EndBuffer|awk '{sum+=$2} END { print sum/120}') (line15)
num= $num + $metab (line16)
done
echo "$num"
done
num = $ ((+ num2 num1))
num = $ ((num1 + 2 + 3) #. num = $ [num1 + num2] # 이전, 사용되지 않는 산술 표현식에서는 문법
expr $ num1 num = '공백' 에 대한 식) 가 중요한 num2 + $ #
< hr>;
num=$(awk "BEGIN {print $num1+$num2; exit}")
num=$(python -c "print $num1+$num2")
num=$(perl -e "print $num1+$num2")
num=$(echo $num1 + $num2 | bc) # whitespace for echo is important
과학 표기법 사용할 수도 있습니다 (예: '2.5e + 2')
< hr>;
num = 1 ',' < strike> < /strike>;; num = 2 ',' < strike> < /strike>;;
<; "num = '식' num1+ num2$ $" < strike> /strike>;
산술 (()) '' $ 사용해야 했다.
num=$(( $num + $metab ))
자세한 내용은 http://tldp.org/LDP/abs/html/arithexp.html 참조.
천 가지 방법 및 원-부트 do it. # 39 을 사용하여 dc7900 here& '한':
dc <<<"$num1 $num2 + p"
echo $num1 $num2 + p | dc
하지만 어쩌면 you& # 39 는 이상한 생각을 하고, 그 중 한 사람이 있고, 구역질 RPN # 39, t don& 걱정! 'bc' 는 here for you.
bc <<< "$num1 + $num2"
echo $num1 + $num2 | bc
즉, 한 가지 연관해제된 데이터베이스에구성원을 스크립트입니다 일부 개선 할 수 있습니다
#!/bin/bash
num=0
metab=0
for ((i=1; i<=2; i++)); do
for j in output-$i-* ; do # for can glob directly, no need to ls
echo "$j"
# grep can read files, no need to use cat
metab=$(grep EndBuffer "$j" | awk '{sum+=$2} END { print sum/120}')
num=$(( $num + $metab ))
done
echo "$num"
done
편집:
설명대로 [BASH FAQ 022] (http://mywiki.wooledge.org/BashFAQ/022), 배시 내부적으로 지원하지 않는 부동 소수점 숫자. If you need to sum 외부 툴을 사용하여 부동 소수점 숫자 (like 'bc' 또는 'dc7900') 가 필요합니다.
이 경우 솔루션이므로 약간만이라도
num=$(dc <<<"$num $metab + p")
'숫자' 에 아마도 부동 소수점 추가할 수 있었습니다.
Bash,
num=5
x=6
(( num += x ))
echo $num # ==> 11
단, 배시 정수 연산 처리 할 수 있을 경우 적은 되돌려줍니다 you& # 39, ll, awk, 그래서 그 명령을 매핑하려는 재설계. # 39 의 코드에 있는 모든 일을 할 준비가 mkl 다시 here& 조금 있다.
num=0
for ((i=1; i<=2; i++)); do
for j in output-$i-*; do
echo "$j"
num=$(
awk -v n="$num" '
/EndBuffer/ {sum += $2}
END {print n + (sum/120)}
' "$j"
)
done
echo "$num"
done
#!/bin/bash
read X
read Y
echo "$(($X+$Y))"
다른 방법으로 '에서' 노트북 'POSIX 호환 함수로 정의할 수 있는' 에서 ',' 배시 이바시르 편의성을 위해 축복내린 산술 연산자.
addNumbers () {
local IFS='+'
printf "%s\n" "$(( $* ))"
}
이에 따라, 그리고 그냥 호출하십시오 명령줄이
addNumbers 1 2 3 4 5 100
115
이 아이디어는 사용할 수 있는 [입력 필드를 seperator (if)] (https://bash.cyberciti.biz/guide/) 에서 사용되는 단어 분할 후 배시 '변수 $ ifs), 특수' 를 확대 및 보장-분리 줄 것이다. 이 기능을 사용할 수 있다 '+' sum 연산자입니다 로칼에서 값을 변경하고 단어 분할 문자.
Ifs '나' 는 '있다' 는 변경일 및 로컬으로 NOT 적용하십시오 켜짐이 기본값입니다 IFS 위부의 함수은 내시경이요 '남자' 에서 충족되었으며 발췌문 페이지이므로 배시
각 캐릭터는 >, 셸) 에서는 결과에 대해 말을 다른 확장 및 분할합니다 ifs 구분 기호로 로 이 문자를. Ifs 설정하지 않은 경우, 또는 그 값은 정확히 <;;;;;, 기본값입니다 space> < tab> < newline> <;;;, 및 < 어졌다면 시퀀스를 space> < tab> newline>; 이전 확장 무시됨 시작과 끝에 결과, 모든 일련의 IFS 아닌 문자가 시작 부분이나 끝 부분에 는 구분하는 것이다.
이 ',' seabreeze " " $ (($ *)), 그리고 나중에는 의해 분할됩니다 전달된 인수 목록을 사용하여 printf 함수의 출력 값 '+' 는 '합'. 또 다른 산술 연산을 위한 기능을 추가할 수 있는 범위를 확장할 수 있다.
#!/bin/bash
num=0
metab=0
for ((i=1; i<=2; i++)); do
for j in `ls output-$i-*`; do
echo "$j"
metab=$(cat $j|grep EndBuffer|awk '{sum+=$2} END { print sum/120}') (line15)
let num=num+metab (line 16)
done
echo "$num"
done