コマンドライン引数として数字を追加するには?

コマンドライン引数として数字を追加するには?

コマンドラインで1つの数字とデフォルトの数字を追加しようとしています。たとえば、ユーザーが数値50を入力すると、スクリプトは10(デフォルト番号)を追加します。

./script 50
The sum of 50+ 10 is 60. 

これが私が今まで持っているものです。

echo -n "Please enter a number: " 
read number 
default = 10
sum = $((default + number)) // this line does not seem to work
echo "The sum of $number and 10 is $sum."

私の文法に問題があるのでしょうか?私は正しい道を行っているかどうかわかりません。私は電話番号を間違って追加しましたか?代わりにawkを使用する必要がありますか?

let sum = $default + $number 

答え1

「default = 10」と「sum = $」の間にはスペースを含めないでください。デフォルトの前には$が含まれており、変数から読み取る数値も必要です。

これにより、スクリプトは次のように動作します。

#!/bin/bash

echo -n "Please enter a number: " 
read number 
default=10
sum=$(($default + $number))
echo "The sum of $number and 10 is $sum."

答え2

これはあなたが要求するものを達成するための最速の方法です:

#!/bin/bash
echo "The sum of $1 + 10 is $(($1 + 10))."

出力:

creme@fraiche:~/$ ./script.sh 50
The sum of 50 + 10 is 60.

答え3

空白が原因でエラーが発生しました。

「数字を入力してください。

#!/bin/bash
echo -n "Please enter a number: " 
read number 
default=10
sum=`echo "$number + $default" | bc`
echo "The sum of $number and 10 is $sum."

確認する:

./temp.sh
Please enter a number: 50
The sum of 50 and 10 is 60.

ユーザーがスクリプトの引数として数字を入力できるようにするには、次のスクリプトを使用できます。

#!/bin/bash
number="$1"
default=10
sum=`echo "$number + $default" | bc`
echo "The sum of $number and 10 is $sum."

確認する:

./temp.sh 50
The sum of 50 and 10 is 60.

関連情報