当前位置: 首页 > 面试题库 >

Bash脚本进程替换语法错误:“(”意外

涂飞航
2023-03-14
问题内容

我要运行此脚本

#!/bin/bash
echo <(true)

我将其运行为:

sh file.sh

然后我得到“ Syntax error: "(" unexpected”。我发现了一些类似的情况,但仍然无法解决。我是shell脚本的初学者,但据我了解:

  1. 我使用的shebang是正确的,并选择了bash shell,所以流程替换语法应该可以工作
  2. 我从命令行尝试了同样的方法,并且可以正常工作。我检查了一下echo $0,它给了我“ bash”,那么与在命令行中运行命令和调用同一shell的脚本有什么区别?

也许这很简单,但是我找不到解释或解决方案。


问题答案:

您应该使用来运行脚本bash,即,bash ./script.sh或者将shebang
./script.sh设置为可执行文件后再使用shebang 。sh ./script.sh正如Cyrus所评论的那样,仅在运行时我才会得到您的错误。



 类似资料:
  • 问题内容: 我有此Shell脚本,可用于备份系统。有一行: 如您所见,我一直在尝试使用此博客文章通过tar过滤掉烦人的,无用的“套接字忽略”错误。 我在执行时从shell中得到的是: / bin / sysback:第45行:意外令牌tar 附近的语法错误-Pzcpf / backups / backup –directory = / –exclude = proc –exclude = sys

  • 问题内容: 我想运行一个sh文件: 但是,出现以下错误: 如果我直接在命令行上尝试,它会完美运行。 路径和权限已被检查 知道会发生什么吗? 问题答案: 这不是“ sh文件”,而是 bash 脚本。如果使用来运行它,它将不起作用(因为extixlobs,即您要使用的shell功能,在POSIX sh中不受支持);它需要仅与运行,或用与启动时(因为它)。因此,将其描述为“ sh文件”会产生误导。而且,

  • 问题内容: 运行此脚本 给出错误: cleanup.bash:第10行:意外令牌’(’附近的语法错误 cleanup.bash:第10行:’rm -rf!(composer.json | .git)’ 但是如果我直接在终端中运行没问题 我试着去掉所有其他行,仍然得到错误。 如何在bash脚本中正确输入? 问题答案: 我猜您的问题是由于从脚本运行时未设置shell扩展glob选项。当您声称它可以在命

  • 问题内容: 我是bash脚本的新手,但我不理解为什么它不起作用 第3行的替代替换错误 问题答案: 该替换在Bash 4.2.8中正常工作(并且根据文档看起来还不错)。 我最好的猜测是您实际上并没有使用Bash-您如何调用脚本?如果您正在执行此操作,则可能会与Dash或类似的程序一起运行(Dash确实在第3行给出了替换错误)。尝试使用Bash()显式运行它。 如果事实证明您实际上是在使用Dash,这

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

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