我正在尝试从命令行添加 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 = $”之间不应该有空格,default 和 number 之前也应该有 $ 以从变量中读取。
然后,脚本按我预期的方式工作,如下所示;
#!/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.