web-dev-qa-db-ja.com

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が必要です。 answer aboutを使用して、最後に失敗しましたbashスクリプトに数字を追加するにはどうすればよいですか

START2=$((getStart+1))

Bashスクリプトでローカル変数をインクリメントするにはどうすればよいですか?

2コードから。それでも、任意の変数または数値に同じ手法を使用できます。

local start=1
(( start++ ))

または

(( ++start ))

または

(( start += 1 ))

または

(( start = start + 1 ))

あるいは単に

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

等.

37
choroba

試してください:

_START2=$(( `getStart` + 1 ));
_

$(( ))は、算術演算を実行することをbashに通知します。一方、バッククォートは、ユーザー定義関数または外部プログラムの呼び出しなど、含まれている式を評価して、 stdout。

3
SpaghettiCoder