コマンドラインで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.