我正在用Vim编辑器为操作系统基础知识类制作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数学”将提供多种方法来实现此目的,但这是一种方法.
finalgrade=$((assignment + test1 + test2 + exam))
值得注意的是,您的实际问题是在Assignment =旁边有空格,这导致bash将其解释为命令“ finalgrade”(未找到)而不是赋值.变量赋值在=旁边不能有空格.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。