スクリプトを追加しても予想される出力は返されません。

スクリプトを追加しても予想される出力は返されません。

ユーザーが入力した数値の合計を計算するスクリプトが必要です。

これまで私は以下を持っています:

#!/bin/bash
add() {
  sum=0

  for num
  do
          sum=$((sum +num))
  done

}

echo "$sum"

私が使用するコマンドは次のとおりです。

add 4 -3 9 12

戻り値は次のとおりです。空行 - 単語ではなく空行です。 username~/folder:>

私は何を見逃していますか?

権限はrwxr xr x パス内のフォルダを使用して対話型シェルを実行していますが、迷っています。

ベストアンサー1

スクリプトを少し修正してみましょう。

$ cat add.sh
#!/bin/bash
add() {
  sum=0
  for num
  do
          sum=$((sum +num))
  done
}

add "$@"
echo "sum=$sum"

それではスクリプトを実行してみましょう。

$ bash add.sh 4 -3 9 12
sum=22

効果がある

唯一の変更は、add "$@"echoの前に関数を呼び出すことですsum

おすすめ記事