在 bash 脚本中添加数字表示 "not found"
Adding numbers in bash script says "not found"
我正在 Vim 编辑器中为我的操作系统基础 class 制作一个 bash 脚本,我遇到了一个非常简单但令人沮丧的错误,我无法添加变量在一起并将总和设置为另一个变量。我尝试了多种格式来完成此操作,但它要么打印出每个值,要么打印出“:未找到”错误。这是我到目前为止的代码,我只想将每个测试的值的总和设置到变量 'finalgrade' 中并打印输出。
echo "Enter assignment mark (0 to 40): " ; read assignment
echo "Enter test1 mark (0 to 15): " ; read test1
echo "Enter test2 mark (0 to 15): " ; read test2
echo "Enter final exam mark (0 to 30): " ; read exam
finalgrade = $assignment + $test1 + $test2 + $exam
echo "Your final grade is : "$finalgrade
这是我 运行 时得到的示例:
$ sh myscript
Enter assignment mark (0 to 40):
1
Enter test1 mark (0 to 15):
2
Enter test2 mark (0 to 15):
3
Enter final exam mark (0 to 30):
4
myscript: 5: myscript: finalgrade: not found
Your final grade is :
我反而希望最后一行是:
Your final grade is : 10
谢谢,
这一行
finalgrade = $assignment + $test1 + $test2 + $exam
不会执行任何数学运算。谷歌搜索 "bash math" 将提供多种方法来做到这一点,但这里有一个;
finalgrade=$((assignment + test1 + test2 + exam))
值得注意的是,您的实际问题是赋值 =
旁边有空格,这导致 bash 将其解释为命令 "finalgrade"(未找到)而不是一项任务。变量赋值不能在 =
.
旁边有空格
我正在 Vim 编辑器中为我的操作系统基础 class 制作一个 bash 脚本,我遇到了一个非常简单但令人沮丧的错误,我无法添加变量在一起并将总和设置为另一个变量。我尝试了多种格式来完成此操作,但它要么打印出每个值,要么打印出“:未找到”错误。这是我到目前为止的代码,我只想将每个测试的值的总和设置到变量 'finalgrade' 中并打印输出。
echo "Enter assignment mark (0 to 40): " ; read assignment
echo "Enter test1 mark (0 to 15): " ; read test1
echo "Enter test2 mark (0 to 15): " ; read test2
echo "Enter final exam mark (0 to 30): " ; read exam
finalgrade = $assignment + $test1 + $test2 + $exam
echo "Your final grade is : "$finalgrade
这是我 运行 时得到的示例:
$ sh myscript
Enter assignment mark (0 to 40):
1
Enter test1 mark (0 to 15):
2
Enter test2 mark (0 to 15):
3
Enter final exam mark (0 to 30):
4
myscript: 5: myscript: finalgrade: not found
Your final grade is :
我反而希望最后一行是:
Your final grade is : 10
谢谢,
这一行
finalgrade = $assignment + $test1 + $test2 + $exam
不会执行任何数学运算。谷歌搜索 "bash math" 将提供多种方法来做到这一点,但这里有一个;
finalgrade=$((assignment + test1 + test2 + exam))
值得注意的是,您的实际问题是赋值 =
旁边有空格,这导致 bash 将其解释为命令 "finalgrade"(未找到)而不是一项任务。变量赋值不能在 =
.