私はラズベリーパイでのbashスクリプト作成スキルを強化しようとしています。私は、ユーザーからの情報を取りたい、このスクリプトでbashのforループで他の変数の "part"に変数の値を割り当てる方法は?
: - 各リレー を閉じると、ループはそれに精通しているためにそれを最大限にやろうとするための時間 - リレーの閉鎖 の数。
他の変数の一部に変数を代入するときに問題があります。 私はsleepコマンドを入力しようとしているループのセクションで見ることができます。私はunderstadとして、私は、メモリ内の4つの変数があります:pausetime17
、pausetime18
、pausetime22
、およびpausetime23
をので、私はちょうどループ内でそれらを介して行きたい:
from z in 17 18 22 23
do
sleep $pausetim$z
done
しかし、エラーがシェルに上昇します。私は間違って何をしていますか?おかげさまで
echo "Enter the number of repeats"
read numbertime
for k in 17 18 22 23
do
echo "Enter time for relay $k"
read pausetime$k
done
for j in 17 18 22 23
do
echo $j > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio$j/direction
done
for ((i=1; i<=$numbertime; i++))
do
for z in 17 18 22 23
do
echo 1 > /sys/class/gpio/gpio$z/value
sleep $pausetime${!z}
echo 0 > /sys/class/gpio/gpio$z/value
sleep $pausetime${!z}
done
done
for j in 17 18 22 23
do
echo $j > /sys/class/gpio/unexport
done
多分配列変数を使うべきです。 http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_10_02.html – ymonad
はい、私はこの方法を考えました。私は散発的な状況のための単純な変数でそれを行うことができたことを知りたがっています。 – HuskyTheFur
しないでください。変数名や実行可能コードが動的に変更されると、デバッグが困難な状況が発生します。この場合、配列を使用するのは難しくありません。 –