2012-05-23 25 views
5

最近、私はいくつかのbashスクリプティングを手がけ、マニュアルページを見てきました。私が集めたものから、$(())は平均exprとなり、[ ]は平均testになりますか? $(())について

echo $(expr 5 + 3) 

[ ]について:

test 'str' = 'str' 

と同じ成功値を有する

echo $((5 + 3)) 

は同じ出力を有します

私は正しく理解しましたか?

+2

また、[[]]を考慮すると、パターンマッチング(他のものと同じことができます)を行うことができます。 Single []はBourneシェル構文です。 – cdarke

+0

ヘッドアップありがとう!私はそれがあなたがすべて提供しているすべての種類の助けを借りて考え出した!乾杯! – Vern

+0

'$(())'はバッジズムではなく、POSIX固有の標準準拠の構文です。 'expr'は1970年代のアンティークです。 –

答えて

9

((...))構成は、bash組み込みletに相当します。 letはほとんど同じものですexprします。

$((...))の構造は、冒頭で$に注意してください。$(...)と同じように、式の出力を置き換えます。

[...]は実際にはtestの別の名前です。

詳細については、bashヘルプページを参照してください。

  • help "("
  • help let
  • help [
  • help test

も参照してください。

+0

ありがとう!そして、リンクについても!彼らは本当に便利だった:) – Vern

6

、これはexprのより精巧な代替品です。 exprより複雑な式を計算することができます。

関連する問題