我正在尝试从命令行添加 1 个数字,并像默认值一样添加一个数字。例如:当用户输入数字 50 时,脚本将添加 10(作为默认数字)。
./script 50
The sum of 50+ 10 is 60.
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止。
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."
Run Code Online (Sandbox Code Playgroud)
我的语法错误吗?我不确定我是否在正确的轨道上。我加错数字了吗?我应该改用 awk 吗?
let sum = $default + $number
Run Code Online (Sandbox Code Playgroud)
Chr*_*son 15
您不应该在“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."
Run Code Online (Sandbox Code Playgroud)
这是执行您所要求的最快方法:
#!/bin/bash
echo "The sum of $1 + 10 is $(($1 + 10))."
Run Code Online (Sandbox Code Playgroud)
输出:
creme@fraiche:~/$ ./script.sh 50
The sum of 50 + 10 is 60.
Run Code Online (Sandbox Code Playgroud)
空格导致了错误。
如果您希望用户在提示“请输入数字:”时输入数字,您可以使用您的脚本进行一些更正,如下所示:
#!/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."
Run Code Online (Sandbox Code Playgroud)
查看:
./temp.sh
Please enter a number: 50
The sum of 50 and 10 is 60.
Run Code Online (Sandbox Code Playgroud)
如果您希望用户输入数字作为脚本的参数,您可以使用以下脚本:
#!/bin/bash
number="$1"
default=10
sum=`echo "$number + $default" | bc`
echo "The sum of $number and 10 is $sum."
Run Code Online (Sandbox Code Playgroud)
查看:
./temp.sh 50
The sum of 50 and 10 is 60.
Run Code Online (Sandbox Code Playgroud)