ユーザーのキーボード入力に基づいて実行回数を維持するには、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