Shell脚本常见执行报错案例

在Ubuntu 16.04上遇到Shell脚本执行错误,如'Syntax error: "(” unexpected (expecting “fi”)”',原因是sh默认指向dash。尽管尝试将dash重置为bash,问题仍存在。解决办法是通过'dpkg-reconfigure dash'禁用dash。此外,还遇到了'syntax error near unexpected token `$’ ’’'的报错,通常由换行符问题引起,解决方案未详述。
摘要由CSDN通过智能技术生成

Shell脚本执行报错 :Syntax error: “(” unexpected (expecting “fi”)

今天在Ubuntu 16.04上运行某些脚本时,总是报告某行“Syntax error: “(” unexpected (expecting “fi”)”错误。

查了一下脚本没有发现错误,经过搜索说可能是sh的链接问题。

首先到/bin/下面查看当前链接:ls -l /bin/sh

发现sh默认是指向dash的。按照文末参考文章中的方法修改链接,似乎还是没有效果。

经过搜索发现dash和bash是不同的(一直把dash看成bash了!!),那么到底是bash还是该是dash呢,Ubuntu安装时默认使用dash,据说dash比bash体积小速度快,但原来在bash下正常运行sh脚本在dash下运行往往有问题,而且提示错误模糊,说明dash的兼容似乎也有问题。

规避问题的方法,就是重新配置dash:

sudo dpkg-reconfigure dash

会弹出重新配置dash界面,并选择“no”不使用dash。

Shell脚本报错:syntax error near unexpected token `$’\r’’

可能出现的原因

复制过程出现错误
跨平台

解决方案—即可解决

sed -i 's/\r//g' xxxxxx.sh

                
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Shell 脚本执行 `ctx` 命令报错可能有多种原因。以下是一些常见的解决方法和建议: 1. 检查 `ctx` 命令是否可用:首先,请确保 `ctx` 命令在您的系统上可用。您可以在终端中直接尝试运行 `ctx` 命令,确认是否能够正常执行。如果无法执行,请检查是否正确安装了相关的软件或工具,并确保其在系统路径中。 2. 检查权限:确保您在执行脚本时具有足够的权限来运行 `ctx` 命令。如果脚本是以普通用户身份运行的,可能需要使用 `sudo` 或管理员权限来执行特定的命令。 3. 检查环境变量:某些命令或工具可能需要特定的环境变量设置才能正常工作。请确保您的脚本中设置了正确的环境变量,或者在脚本中明确指定命令的路径,例如 `/path/to/ctx`。 4. 检查参数和语法:确保在执行 `ctx` 命令时提供了正确的参数,并且命令的语法是正确的。您可以参考相关文档或手册来了解正确的命令使用方法和参数选项。 5. 查看错误信息:如果 `ctx` 命令报错,尝试查看报错信息以获取更多的线索。错误信息可能会指示具体的问题或错误原因。请注意,错误信息可能会在标准输出或标准错误流中显示,您可以使用重定向或管道来捕获和查看这些信息。 如果您提供更详细的信息或报错消息,我可以提供更具体的帮助。另外,请确保您使用的 `ctx` 命令与我之前提到的 `ctx` 没有混淆,因为我是一个独立开发的 AI,并不与任何特定的 `ctx` 命令相关联。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寰宇001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值