如何在 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 ))

ETC。

答案2

尝试:

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

告诉$(( ))bash 它要执行算术运算,而反引号告诉 bash 计算包含的表达式(无论是用户定义的函数还是对外部程序的调用),并返回 stdout 的内容。

答案3

这是安全的选择

(( start = start + 1 ))

如果结果值非零,则设置错误退出将停止您的脚本

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

相关内容