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 回答