0

シェルで数値を反転したい。私の数値には、1と0の2つの値しかありません。数値が1の場合は0に反転し、0の場合は1に反転します

それを行うためのより高速な操作は何ですか?

1) 操作 1: if ステートメントを使用する

if [ x -eq 1 ]; then
    x=0
else
    x=1
fi

2) 操作 2: ビット演算 (xor) を使用する

let x^=1
4

1 に答える 1

2

シェルでプログラミングしている場合、確かに速度はあなたの主な関心事ではありませんか? 特に、このようなマイクロ最適化ではありません。

いずれにせよ、速度は使用するシェルとそのシェルの特定のバージョンに大きく依存します。タグはbashを示唆していますが、実際には言いません。

私ができる唯一のアドバイスは、テストして確認することです。これを 100 万回実行するベンチマークを自分で作成し、どれが最も速く実行されるかを調べてください。

次に、bash ですべてのテストが完了したら、dash を試してください。おそらく機能が豊富ではないにしても、より高速であると言われています。

于 2013-07-17T11:16:01.113 に答える