0

UNIX初心者です。whileループの書き込み中にばかげたエラーが発生します。

コード:-

$ x=0
$ while [ $x -lt 10 ]
> do
> echo $x
> x=´echo "$x + 1" | bc´
> done;

エラーが発生しています:-

0
bc´: command not found   
0
bc´: command not found
0
bc´: command not found
...

どんな体でも私を助けることができますか?シェルプログラミングについてはわかりません。

4

4 に答える 4

1

x=´echo "$x + 1" | bc´インクリメントを行っている場合x(danf で指摘されているように間違っています)、pls は次を使用します。

x=`expr $x + 1`

スペースにも注意してください...bash非常にうるさいです

ここに出力があります -

xxxx@cse:~> x=5
xxxxx@cse:~> while [ $x -lt 10 ]; do echo $x; x=`expr $x + 1`; done;
5
6
7
8
9

これを機能させるために使用できますが、使用bcする方が良いですexpr

xxxx@cse:~> x=5
xxxx@cse:~> while [ $x -lt 10 ]; do echo $x; x=`echo "$x + 1"|bc`; done;
5
6
7
8
9
于 2013-05-11T18:27:50.293 に答える
0

解析エラーがあるようです。バッククォートが必要です。行を次のように変更します。

x=`echo "$x + 1" | bc`
于 2013-05-11T18:22:45.277 に答える
0

サブコマンドを実行するためにバッククォートを使用しないでください。使用してください$( cmd )。この構造はネストできます。たぶん、学習目的で bc へのパイプを使って算術演算を行うかもしれません。それ以外の場合、シェルはさまざまな方法でこれを行うことができます。

$((x+=1))
x=$((x+1))
$((++x))
$((x++))

HTHとよろしく

于 2013-05-11T18:29:23.903 に答える