数字を読み、ゼロまで数えるスクリプトを作成する必要があります。
このエラーは引き続き発生します。
practice123.sh: line 10: let: 1=[: attempted assignment to non-variable (error token is "=[")
ループが正しくカウントダウンすることができないようです。シェルチェックを使用していますが、構文はOKです。どんなアドバイスも本当にありがとうございます。
#!bin/bash
# This script will take one number from the CLI and see if the argument given is a valid variable. Then it will count that variable down to 0.
var1=var1
echo "Enter a number."
read var1
until [ "$var1" -le 0 ]
do
echo "$var1"
let $var1=[ $var1 -1 ]
done
答え1
算術式では、角括弧の代わりに二重括弧を使用します。
(( var1 = var1 - 1 ))
またはより短い
(( var1 -= 1 ))
(( var1-- ))
(( --var1 ))
let
以下も使用できます。
let var1=var1-1
let var1--
let --var1
let 'var1 = var1 - 1' # Quotes needed for whitespace.
算術拡張を使用することもできます(しかし、なぜですか?)
var1=$(( var1 - 1 ))
答え2
#!/bin/bash
# linux countdown script
echo "countdown loading....."
sleep 2
echo "Enter value below"
read number
countdown=$number
until [ $countdown -le "0" ];
do
echo "$countdown"
(( countdown -= 1 ))
if [ $countdown ];
then
sleep 1
fi
done
echo "countdown completed"