【发布时间】:2015-03-01 22:42:36
【问题描述】:
我正在尝试为一个类编写我的第一个 shell 脚本。目标是将整数列表作为命令行参数并显示它们的平方和平方和。我收到一个错误,即找不到参数。
这是给出未找到参数的错误的部分:
sumsq=0 #sum of squares
int=0 #Running sum initialized to 0
count=0 #Running count of numbers passed as arguments
while [ $# != 0 ]
do
numbers[$int]=`expr $1` #Assigns arguments to integers
let square=`expr $1*$1` #Operation to square arguments
squares[$int]=$square #Calc. square of each argument
sumsq=`expr $sumsq + $square` #Add square to total
count=`expr $count + 1` #Increment count
shift #Remove the used argument
int=`expr $int + 1` #Increment to next argument
done
我正在使用 dash shell。
【问题讨论】:
-
能否请您显示您输入的命令行,以及您收到的确切错误消息?
-
你在使用bash吗?
-
@lurker 我将其输入为 './Assign2-1 3 4 5' 对于每个参数重复以下错误消息: ./Assign2-1: 27: ./Assign2-1: numbers[ 0]=3: 未找到 ./Assign2-1: 28: ./Assign2-1: let: 未找到 ./Assign2-1: 29: ./Assign2-1: squares[0]=: 未找到 expr: 语法错误
-
@sputnick 我想我正在使用破折号。它是默认的 Ubuntu shell。
-
感谢您的帮助。这确实是外壳的问题。如果您再次遇到遇到此问题的人,请提醒他们也更改脚本中的第一行,确保它调用正确的解释器(我没有在上面包含这行代码),因为这仍然给我带来了问题。
标签: shell arguments dash-shell