预期的操作数(错误令牌为“-”)和歧义重定向

肖汉姆

我不得不出错,期望操作数和模棱两可的重定向。这是我的代码:

#!/bin/bash
read input >| inputfile
file_name=$(cut -d" " -f1 inputfile)
i=$(cut -d" " -f2 inputfile)
j=$(cut -d" " -f3 inputfile)
k=$(cut -d" " -f4 inputfile)
l=$(cut -d" " -f5 inputfile)
maxlinetoget=$[$l-$k]
currentlinecount=1
result=0
while read line
do
    if [ $currentlinecount -ge $k && $currentlinecount -le $l ]
    then
            echo -n $line >| linefile
            echo -n $line
            for number in linefile
            do
                    echo $number
                    result=$[$result+$number]
            done
    fi
    currentlinecount=$[$currentlinecount+1]
done < $file_name
echo $result

和错误:

./P4.4: line 8: -: syntax error: operand expected (error token is "-")
./P4.4: line 24: $file_name: ambiguous redirect

第8行是:maxlinetoget=$[$l-$k]第24行是:done < $file_name我不知道怎么了,请告诉我。

谢谢。

两种错误都是由于两者$l都不$file_name具有值的结果。当未引用的变量为空时,Bash有时会产生神秘的错误消息。(如果您使用$((l-k))而不是已弃用的内容$[$l-$k],或者特别是引用了您的替换内容,则可能会得到更明智的错误消息"$file_name"。)

read line >| inputfile

从中读取一行stdin并将其放入变量中$line它不产生任何输出,因此inputfile为空。因此,以下所有cut命令均不产生任何输出(无声无声:臭名昭著的NINO)。

您显然想做的是

read file_name i j k l rest
((maxlinetoget = l - k))
# Or maxlinetoget=$((l-k))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

来自Bash的“歧义重定向”错误

来自分类Dev

使用“边读边”和“为我输入”会导致歧义重定向

来自分类Dev

使用“边读边”和“为我输入”会导致歧义重定向

来自分类Dev

错误:类型为“ double *”和“ double”的无效操作数为二进制“ operator /”

来自分类Dev

Bash脚本错误:“语法错误:预期的操作数(错误令牌为“ / backup”)”

来自分类Dev

BASH错误:语法错误:预期的操作数(错误令牌为“”)

来自分类Dev

Bash脚本错误:“语法错误:预期的操作数(错误令牌为“ / backup”)”

来自分类Dev

令牌和枚举类型之间的操作数

来自分类Dev

错误:左值必须为一元和操作数

来自分类Dev

C ++ [错误]与'operator =='不匹配(操作数类型为'Vehicle'和'const Vehicle')

来自分类Dev

C ++,编译时错误“与'operator []'不匹配(操作数类型为'someClass *'和'someClass')”

来自分类Dev

错误:“operator=”不匹配(操作数类型为“PlDrustvo”和“PlDrustvo”)|

来自分类Dev

如何修复:错误:“operator=”不匹配(操作数类型为“Estado”和“Estado*”)

来自分类Dev

用于简单回显的歧义重定向错误

来自分类Dev

尝试循环访问文件时出现歧义重定向错误

来自分类Dev

错误:类型为'const char [35]'和'const char [2]'的无效操作数为二进制'operator +'

来自分类Dev

错误:类型为'int'和'<未解析的重载函数类型>'的无效操作数为二进制'operator <<'

来自分类Dev

涉及“ else if”和缺少操作数的错误

来自分类Dev

错误:'*' 的操作数(*UND* 和 *UND* 部分)无效

来自分类Dev

“与'operator <<'不匹配(操作数类型为'__FILE *'{aka'__sFILE64 *'}和'MyObject')错误C ++”

来自分类Dev

将无效操作数错误为二进制&(具有'int **'和'int *')

来自分类Dev

错误:不匹配'operator >>'(操作数类型为'std :: istream'{aka'std :: basic_istream <char>'}和'const int')|

来自分类Dev

错误:二进制运算符'/'的类型为'int'和'float *'的无效操作数

来自分类Dev

出现错误,无法将运算符应用于类型为system.datetime和string的操作数

来自分类Dev

C#错误运算符*不能应用于类型为'string'和'string'的操作数

来自分类Dev

C ++错误:类型为'double'和<unresolved重载的函数类型'的操作数对二进制'operator'无效

来自分类Dev

错误:类型为“const char [8]”和“const char [7]”的无效操作数到二进制“operator<<”

来自分类Dev

Jenkins将双引号读取为单引号,从而导致歧义重定向错误

来自分类Dev

Jenkins将双引号读取为单引号,从而导致歧义重定向错误

Related 相关文章

  1. 1

    来自Bash的“歧义重定向”错误

  2. 2

    使用“边读边”和“为我输入”会导致歧义重定向

  3. 3

    使用“边读边”和“为我输入”会导致歧义重定向

  4. 4

    错误:类型为“ double *”和“ double”的无效操作数为二进制“ operator /”

  5. 5

    Bash脚本错误:“语法错误:预期的操作数(错误令牌为“ / backup”)”

  6. 6

    BASH错误:语法错误:预期的操作数(错误令牌为“”)

  7. 7

    Bash脚本错误:“语法错误:预期的操作数(错误令牌为“ / backup”)”

  8. 8

    令牌和枚举类型之间的操作数

  9. 9

    错误:左值必须为一元和操作数

  10. 10

    C ++ [错误]与'operator =='不匹配(操作数类型为'Vehicle'和'const Vehicle')

  11. 11

    C ++,编译时错误“与'operator []'不匹配(操作数类型为'someClass *'和'someClass')”

  12. 12

    错误:“operator=”不匹配(操作数类型为“PlDrustvo”和“PlDrustvo”)|

  13. 13

    如何修复:错误:“operator=”不匹配(操作数类型为“Estado”和“Estado*”)

  14. 14

    用于简单回显的歧义重定向错误

  15. 15

    尝试循环访问文件时出现歧义重定向错误

  16. 16

    错误:类型为'const char [35]'和'const char [2]'的无效操作数为二进制'operator +'

  17. 17

    错误:类型为'int'和'<未解析的重载函数类型>'的无效操作数为二进制'operator <<'

  18. 18

    涉及“ else if”和缺少操作数的错误

  19. 19

    错误:'*' 的操作数(*UND* 和 *UND* 部分)无效

  20. 20

    “与'operator <<'不匹配(操作数类型为'__FILE *'{aka'__sFILE64 *'}和'MyObject')错误C ++”

  21. 21

    将无效操作数错误为二进制&(具有'int **'和'int *')

  22. 22

    错误:不匹配'operator >>'(操作数类型为'std :: istream'{aka'std :: basic_istream <char>'}和'const int')|

  23. 23

    错误:二进制运算符'/'的类型为'int'和'float *'的无效操作数

  24. 24

    出现错误,无法将运算符应用于类型为system.datetime和string的操作数

  25. 25

    C#错误运算符*不能应用于类型为'string'和'string'的操作数

  26. 26

    C ++错误:类型为'double'和<unresolved重载的函数类型'的操作数对二进制'operator'无效

  27. 27

    错误:类型为“const char [8]”和“const char [7]”的无效操作数到二进制“operator<<”

  28. 28

    Jenkins将双引号读取为单引号,从而导致歧义重定向错误

  29. 29

    Jenkins将双引号读取为单引号,从而导致歧义重定向错误

热门标签

归档