Bash에 지역 변수를 추가하는 방법은 무엇입니까?

Bash에 지역 변수를 추가하는 방법은 무엇입니까?

데이터

1
\begin{document}
3

암호

#!/bin/bash

function getStart {
        local START="$(awk '/begin\{document\}/{ print NR; exit }' data.tex)"
        echo $START
}

START2=$(getStart)
echo $START2

복귀 2하지만 3실패의 결말을 바꿨다.답변~에 대한Bash 스크립트에 숫자를 추가하는 방법:

START2=$((getStart+1))

Bash 스크립트에 지역 변수를 추가하는 방법은 무엇입니까?

답변1

2나는 당신의 코드에서 그것을 얻었습니다. 그럼에도 불구하고 어떤 변수나 숫자에도 동일한 기술을 사용할 수 있습니다.

local start=1
(( start++ ))

또는

(( ++start ))

또는

(( start += 1 ))

또는

(( start = start + 1 ))

그렇지 않으면

local start=1
echo $(( start + 1 ))

등.

답변2

노력하다:

START2=$(( `getStart` + 1 ));

bash에게 산술 연산을 수행하고 싶다고 알리는 $(( ))백틱은 bash에게 포함된 표현식(사용자 정의 함수인지 외부 프로그램에 대한 호출인지)을 평가하고 stdout의 내용을 반환하도록 지시합니다.

답변3

이것은 안전한 선택입니다

(( start = start + 1 ))

오류 종료를 설정하면 결과 값이 0이 아닌 경우 스크립트가 중지됩니다.

set -e
start=0
(( start++ ))
echo You will never get here

관련 정보