Linux 意外令牌fi

Linux 意外令牌fi,linux,bash,Linux,Bash,shell脚本中出现语法错误:意外标记fi。请在脚本中说明我做错了什么。在GNU bash 4.2.39版上,您的脚本对我有效: $。/测试A B C D 欢迎1次 欢迎两次 欢迎三次 欢迎4次 欢迎5次 姓名是: 可能是原始格式有问题。@DmitriChubarov它也适用于我。但我在编辑中没有做太多更改。我复制了您的格式化脚本,但仍然出现相同的语法错误。我可以请您在这里复制您在终端中的具体操作吗?(单击并添加该选项)。添加cat script\u name输出及其运行方式+确切的错误消息。

shell脚本中出现语法错误:
意外标记fi
。请在脚本中说明我做错了什么。

在GNU bash 4.2.39版上,您的脚本对我有效:

$。/测试A B C D
欢迎1次
欢迎两次
欢迎三次
欢迎4次
欢迎5次
姓名是:

可能是原始格式有问题。@DmitriChubarov它也适用于我。但我在编辑中没有做太多更改。我复制了您的格式化脚本,但仍然出现相同的语法错误。我可以请您在这里复制您在终端中的具体操作吗?(单击并添加该选项)。添加
cat script\u name
输出及其运行方式+确切的错误消息。@Omer Notepadd++可能使用了Windows样式的行尾,而bash则无法识别它们。如何获取bash版本。@Omer
bash--version
。(请注意,您通常只在问题解决后才接受答案。)我的bash版本是GNU bash,版本3.00.15(1)-release(x86_64-redhat-linux-GNU)。另外,在编写测试脚本时,不要调用脚本
test
,因为它会与shell内置冲突,您必须始终记住使用完整路径运行它:)@dogbane谢谢:)不过我只在
/tmp
中创建了这样的东西。
#!/bin/bash
array=($1 $2 $3 $4)
if [ "$#" -ne 4 ]; then 
echo "Please enter Names"
else
for i in 1 2 3 4 5 
do 
echo "Welcome $i times"
done
echo "The Name is: "
fi
$ cat test
#!/bin/bash
array=($1 $2 $3 $4)
if [ "$#" -ne 4 ]; then 
echo "Please enter Names"
else
for i in 1 2 3 4 5 
do 
echo "Welcome $i times"
done
echo "The Name is: "
fi