在以下代码中,使用函数封装代码块时会出现问题。错误消息$1: ambigious redirect" is displayed.
while
循环逐行读取input.txt
文件中的文本,并将其存储在数组linesArray
中。
'while'循环中的for
循环遍历索引0处的linesArray
数组的所有元素,然后执行case语句,该语句将数组的元素与有效元素进行比较mips运营商。
function mnemonicCheck {
while read line; do
linesArray=($line)
for e in ${linesArray[0]}
do
case $e in
"add")
;;
"sub")
;;
"addi")
;;
"lw")
;;
"sw")
;;
*)
echo "invalid operator used. Valid operators are: add,sub,addi,lw,sw"
;;
esac
done
done < $1
}
#calling methods
checkArguments $1 $2 $3
mnemonicCheck
答案 0 :(得分:1)
你没有任何参数调用mnemonicCheck
,所以在函数$1
里面是空字符串。
你会期待什么
< $1
是什么意思? (我同意“模棱两可”在这种情况下使用是一个奇怪的词,但它并不完全错误,因为人们无法确定是什么意思。)