こんにちは、よしのぶと申します。 Vine 4.2(bc-1.06-18vl3)上で作成した数値計算のシェルスクリプトを Vine 6.2(bc-1.06.95-1vl6)で動かしてみたところ、まともに動きません。 いろいろ調べてみたところbcの出力にゴミがついているようです。 下記のスクリプトで計算させるとbashの算術展開とbcの計算結果は、echoの 出力上は同一(真)に見えますが、bcの出力には 5b1b 313f 3330 6834 (0x1B[?1034h) が前置されているため、testはBAD(偽)になってしまいます。先頭の1b以外 はASCIIなのに見えないのはISO-2022-{CN,JP,KR}のエスケープシーケンスか なにかと勘違いしてるのか?とも思ったのですが、該当するようなものは ないようです。 で、このゴミの原因なのですが、bcだけの問題ではなく、実行する端末も 関係するようで、下記スクリプトをVine 6.2のConsole上で実行すると、 前置のゴミは付加されず、BAD(偽)になりません(Vine 6.2のX上の端末、 gnome-terminal, xterm, uxtermなどではBAD(偽)になります)。 前置のゴミをとってやれば対象の数値計算シェルスクリプト自体は動くよう にはなるのですが、そういう問題でもないので、どなたか情報や前置のゴミ を出さないようにする解決策などをお持ちの方はおられませんでしょうか? $ ./bc_err.sh 27 "*" 3 81 = 81 3138 5b1b 313f 3330 6834 3138 BAD #!/bin/sh r1=$(($1 $2 $3)) r2=`echo -n "$1 $2 $3" |bc -iq` echo $r1 = $r2 echo -n $r1 |od -h -A n echo -n $r2 |od -h -A n if [ "$r1" = "$r2" ];then echo O.K. else echo BAD fi -- よしのぶ yoshino@xxxxxxxxxxxxxx _______________________________________________ vine-users mailing list vine-users@xxxxxxxxxxxxxxxxxxxx http://listserv.linux.or.jp/mailman/listinfo/vine-users