電卓として機能する理由:
[root@qabun02 ~]# echo $(( 5+2 ))
7
しかし、そうではありませんか?
[root@qabun02 ~]# echo $( (5+2) )
-bash: 5+2: command not found
私が見ることができる唯一の違いは、括弧の間にスペースがないことです。
返品:
[root@qabun02 ~]# echo $(who)
root pts/0 2015-01-28 09:53 (10.40.0.115)
[root@qabun02 ~]# echo $((who))
0
((
コマンド置換はおよびにどのように応答しますか( (
。
ベストアンサー1
問題は、$(
コマンド置換が有効になっているが$((
算術拡張が有効になっていることです。
$( (5+2) )
コマンドです。つまり、サブシェルのコマンドです(5+2)
。5+2
しかし、これは有効なコマンドではありません。
$((who))
who
未定義の変数値(例:0)に置き換えられます。