実行回数を維持するためにbash変数を使用する方法は?

実行回数を維持するためにbash変数を使用する方法は?

ユーザーのキーボード入力に基づいて実行回数を維持するには、bashにスクリプトを作成する必要があります。

if i type "1" i want a variable $h to increment +1

if i type "2" i want a variable $L to decrement -1

変数$ cは最初の2つの変数の合計を出力したいと思います。

私は試みた: 役に立たなかった

#!/bin/bash

h='0'
l='0'

read card

if [$card='1']
then 
  let "h++"
fi
if [$card='2']
then
  let "l--"
fi

c=$(($h+$l))

echo $c`

私はどこで混乱しましたか?

答え1

  • [ $card -eq 1 ]- エラー、[スペースが必要であり、-eq算術比較に使用する必要があります。

  • $c< - 後ろにバックティックがあるので削除してください。

  • 間違ったことはありません。ただの提案です。let var++ 二重引用符は必要もなく$((var++))必要もありません$(つまり、演算子を「尊重」します)。
  • 間違っているわけではありませんが、不要:数字の割り当てに一重引用符を使用するh=0

「実行回数」という概念全体に問題がある可能性があります。スクリプトが連続しているため、定義に従ってスクリプトが終了すると、変数は消えます。シェルが機能するため、実行回数はカウントされません。おそらくあなたが望むのは、カウンタを一時ファイルに出力してからもう一度読むことです。または、無限のwhileループでスクリプトを実行します。それは次のとおりです。

#!/bin/bash
h=0
l=0
while read user_input;
do
    [ "$user_input" -eq 1 ] && ((h++))
    [ "user_input" -eq 2 ] && ((l--1))

    echo "So far h is $h, and l is $l"
done

関連情報