如何添加数字作为命令行参数?

如何添加数字作为命令行参数?

我正在尝试从命令行添加 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.

相关内容