Shell编程时出现未预期的符号?`then'附近有语法错误或者?:?行?:?'then'问题

/bin/basha=10b=20if [ $a == $b ]echo "a等于b"fi上述代码漏掉了if和[之间必须加空格”`fi'我们可以通过将代码修改成下面这样来解决以上报错。

作为计算机领域中一种重要的脚本语言,Shell在Linux系统中广泛应用。然而,当我们在使用Shell编程时,经常会遇到各种各样的问题。其中一个比较常见的问题就是“未预期的符号‘then’附近有语法错误”或者“?: 行:? ‘then’ 问题”。这些错误信息往往让人摸不着头脑。

10年积累的成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有武宣免费网站建设让你可以放心的选择与我们合作。

那么,这些错误究竟是什么意思?如何解决它们呢?

首先来看第一个错误:“未预期的符号‘then’附近有语法错误”。这个错误通常发生在if条件判断结构中。如果你漏掉了if后面紧随其后必须跟着的空格,则会导致此类报错:

```

#!/bin/bash

a=10

b=20

if [ $a == $b ]

echo "a等于b"

fi

上述代码漏掉了if和[之间必须加空格,因此执行该代码会得到以下输出:

./test.sh: line 5: syntax error near unexpected token `fi'

./test.sh: line 5: `fi'

我们可以通过将代码修改成下面这样来解决以上报错:

if [ $a == $b ]; then

在这个例子中,我们添加了一个分号和“then”关键字来指示if语句的结束。如果你仍然遇到相同的错误,请检查是否还有其他语法错误或拼写错误。

接下来看第二个常见问题:“?: 行:? ‘then’ 问题”。这种类型的报错通常意味着你在使用bash shell时不小心使用了一元表达式。一元表达式是指只包含一个变量或值并被认为是真(true)或假(false)的条件判断语句。例如:

num1=5;

num2=6;

if [$num1 -lt $num2]

then echo "$num1 is less than $num2"

else echo "$num1 is greater than or equal to $num2"

上述代码中,我们没有正确地将方括号与条件之间隔开,因此会导致以下输出:

./test.sh: line 4: [: missing `]'

./test.sh: line 4: num1: command not found

$num1 is greater than or equal to $sum2

要解决这个问题,我们需要确保在方括号内部加入空格,并且把变量名用$符号引用起来。修改后如下所示:

#!/bin/bash

sum1="5"

sum2="6"

if [ "$sum1" -lt "$sum2" ]

then

echo "$sum1 is less than $sum2!"

else

echo "$sum1 is greater than or equal to $sum2!"

经过以上修改,我们就可以成功运行该代码了。

总的来说,在Shell编程中遇到“未预期的符号‘then’附近有语法错误”或者“?: 行:? ‘then’ 问题”的报错时,一定要耐心地检查自己的代码是否存在拼写错误、变量引用不当等问题。只有确保每个字符都是正确且完整的,才能使你顺利地完成Shell脚本编程工作。

当前题目:Shell编程时出现未预期的符号?`then'附近有语法错误或者?:?行?:?'then'问题
浏览地址:http://www.shufengxianlan.com/qtweb/news47/550797.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联