데이터
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 스크립트에서 지역 변수를 어떻게 증가시킬 수 있습니까?
댓글
답변
2
. 그럼에도 불구하고 모든 변수 또는 숫자에 대해 동일한 기술을 사용할 수 있습니다.
local start=1 (( start++ ))
또는
(( ++start ))
또는
(( start += 1 ))
또는
(( start = start + 1 ))
또는
local start=1 echo $(( start + 1 ))
등
댓글
- 도움이 될 수도 있습니다. askubuntu.com/questions/385528/ …
답변
시도 :
START2=$(( `getStart` + 1 ));
$(( ))
는 bash에게 산술 연산을 수행하도록 지시하고 백틱은 bash에게 포함하는 표현식을 평가하도록 지시합니다. t 사용자 정의 함수 또는 외부 프로그램 호출 및 stdout의 내용을 반환합니다.
Answer
이것은 안전한 베팅
(( start = start + 1 ))
결과 값이 0이 아닌 경우 오류시 종료를 설정하면 스크립트가 중지됩니다.
set -e start=0 (( start++ )) echo You will never get here
awk
?sed -n '/begin{document}/{=;q}' data.text
훨씬 짧아졌습니다…}/{=;q}
답변 / 의견에 이것 좀 넣어 주시겠습니까?