数据
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