2
#!/bin/bash

f=1
c=$1
while [[ $c != 0 ]]
do
        $f=$(($c*$f))
        $c=$(($c-1))
done
echo $c

エラーが発生し続けます

./process.sh: line 8: 1=0: command not found
./process.sh: line 7: 5=5: command not found

実行時./process.sh 5

4

2 に答える 2

5

$「の値」を意味する$fため、文字列リテラルに評価されます1。そう...

    $f=$(($c*$f))
    $c=$(($c-1))

する必要があります

    f=$(($c*$f))
    c=$(($c-1))
于 2013-03-10T00:36:06.430 に答える
1

ループでは、そうあるべきです

f=$(($c*$f))
c=$(($c-1))
于 2013-03-10T00:36:04.887 に答える