ユーザーが入力した数値の合計を計算するスクリプトが必要です。
これまで私は以下を持っています:
#!/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
。
答え2
ただ含める実際これを行う簡単な方法:
#!/bin/bash
IFS=+
bc <<< "$*"
これを使用してください(実行権限を持つファイルから呼び出されたときadd.sh
):
$ ./add.sh 4 -3 9 12
22
$
~/.bashrc
あるいは、単に関数として定義するか、作成しているより大きなbashスクリプトとして定義してください。
add() (
IFS=+
bc <<< "$*"
)