Ubuntu(53-Ubuntu x86_64 x86_64 x86_64 GNU / Linux)で以下にリストされているbashスクリプトの実行中に、タイトル行に記載されているエラーが見つかりました。
#!/bin/bash
read x y
echo $(($x + $y))
しかし、RedhatとCentOSでも完全に動作します。
なぜこれが起こるのか教えてください。すべてのオペレーティングシステムにはbashバージョン4.3.11(1)リリースがあります。
答え1
2つではなく1つの入力番号しか提供していないため、エラーが発生します。この場合、readはこの数値を変数に代入しますx
がy
空のままになるので、次の行は次のようになりますecho $(($x + ))
。演算子に+
2つのオペランドが必要であることを知っていますが、ここでy
(2番目のオペランド)が欠落しているため、エラーが発生しますoperand expected (error token is “+ ”)
。