当前位置: 首页 > 知识库问答 >
问题:

BASH语法错误接近意外令牌'完成'[重复]

洪弘亮
2023-03-14

对问题可能是什么的任何想法?

我的代码是:

#!/bin/bash
while :
do
echo "Press [CTRL+C] to stop.."
sleep 1
done

将其保存为.sh并运行bash file.sh

CentOS 6 32位

问题是什么?第一次使用BASH时,需要它来进行简单的无限循环

共有3个答案

郭凯
2023-03-14

你得到的错误是什么?

$ bash file.sh
test.sh: line 8: syntax error: unexpected end of file

如果您收到该错误,则可能有错误的行尾。使用云服务器

您可以使用od-atest.sh查看文件中不可见的字符。

$ od -a test.sh
0000000    #   !   /   b   i   n   /   b   a   s   h  cr  nl   #  sp  cr
0000020   nl   w   h   i   l   e  sp   :  cr  nl   d   o  cr  nl  sp  sp
0000040   sp  sp   e   c   h   o  sp   "   P   r   e   s   s  sp   [   C
0000060    T   R   L   +   C   ]  sp   t   o  sp   s   t   o   p   "  cr
0000100   nl  sp  sp  sp  sp   s   l   e   e   p  sp   1  cr  nl   d   o
0000120    n   e  cr  nl                                                
0000124

< code>sp代表空格,< code>ht代表制表符,< code>cr代表< code >

还可以使用 cat -v test.sh 如果您的 cat 命令采用 -v 参数。

如果您的盒子上有<code>dos2unix</code>的话,您可以使用该命令修复文件

$ dos2unix test.sh
萧繁
2023-03-14

我在Cygwin上遇到了同样的错误;我做了以下操作(其中一个修复了它):

  1. 选项卡转换为空格
  2. 上运行dos2unix。(ba)sh文件
荀金鹏
2023-03-14

运行< code>cat -v file.sh。

您的文件中很可能有一个回车符或无换行空格。猫 -v 将分别将它们显示为 ^MM-BM-M-。它同样会显示您可能已进入文件的任何其他奇怪字符。

删除窗口换行符

tr -d '\r' < file.sh > fixedfile.sh
 类似资料:
  • 问题内容: 我在Mac上写了一个示例脚本 通过显示Example可以正常工作 当我在RedHat机器上运行此脚本时,它说 意外令牌附近的语法错误’ 我检查了bash是否可用 有人遇到过同样的问题吗? 提前致谢 ! 问题答案: 这可能是文件编码问题。 在不同操作系统和编辑器之间处理文件时遇到了文件类型编码问题,在我的情况下,尤其是在Linux和Windows系统之间。 我建议检查文件的编码,以确保它

  • 问题内容: 问题答案: 您要在UNIX命令提示符下键入此命令吗?您应该在python环境中执行此操作,即。在提示符下键入,然后从那里开始。 另外,在Python行的末尾不需要

  • 我正在使用一种新的语言,我想它是linux,但老实说,我不知道;我们通过一个名为putty的程序连接到某个服务器来进行编程。作为作业的一部分,我必须创建一个计算器程序,以两个数字和一个运算符作为分段,但我得到了一堆意想不到的令牌错误。我很迷茫,我的课文和我的教授都没有帮助 到目前为止,我只是想得到它,这样我就可以从命令中得到2/calc.sh 1 1但我在第20行中不断遇到意外的标记错误

  • 问题内容: 我键入的代码与《 Linux命令行:完整介绍》 (第369页)相同,但提示错误: 代码是这样的: 我想了解是什么导致了错误?如何修改代码?我的系统是Ubuntu。 问题答案: 和之间必须有一个空格,如下所示: 这些(及其组合)也都是 不正确的 : 另一方面,这些都可以: 顺便说一句,这些是等效的: 这些也等效: 而且,您的脚本的中间部分应该像这样更好: (我也将引号中的引号删除了,因为

  • 应用程序。js公司 在执行上述代码时,我得到以下错误。 当我将鼠标悬停在线上方时,会出现这个错误 在我的VS代码中。 当我使用node运行代码时,即在上。我在终端中收到以下错误: 我做错了什么?我希望最后的obj的值是{1:,2:,3:}

  • 我写了一个脚本,脚本的一部分如下: 当我运行这个脚本时,我得到了错误, 1)行尾有问题吗?我在 Windows 上使用记事本编写了脚本,但我在编辑为 UNIX/OSX 格式下启用了 EOL 转换。 2)如果不是行尾,是什么错误? 我正在Redhat Linux操作系统上的bash shell中运行此脚本。