GNU shell 函数在意外标记“(”附近出现语法错误

2024-03-29

我想确定我的 makefile 中 Intel Fortran 编译器的版本,因此我添加了一些脚本GNU shell功能如下进行测试,

VERIFORT := $(shell ifort --version)
#VERIFORT := $(shell ifort --version | grep ^ifort) # error occurred too

.PHONY: test
test:
    echo $(VERIFORT)

如果您复制上面显示的代码行,请确保前面有一个制表符echo命令。

这给了我一些错误

/bin/sh: -c: line 0: syntax error near unexpected token `('

当我运行命令时ifort --version or ifort --version | grep ^ifort在终端中,它给出了正确的结果并且没有发生错误。

我的系统:64位CentOS 7

感谢任何更正建议。

[EDIT]

添加更多输出详细信息:

随着grep的版本VERIFORT, the make命令产生以下结果,

echo ifort (IFORT) 18.0.2 20180210
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `echo ifort (IFORT) 18.0.2 20180210'
make: *** [test] Error 1

[SOLVED]

原来是一个echo- 使用问题正如@MadScientist 提到的

我认为你需要引用的价值VERIFORT打印时变量,以便 shell 不解释特殊字符。

引用VERIFORT变量产生以下结果(grep版本)

echo 'ifort (IFORT) 18.0.2 20180210'
ifort (IFORT) 18.0.2 20180210

并且没有发生错误。

我也使用它进行了测试echo在终端中

echo ifort (IFORT) 18.0.2 20180210

哪个产生了相同的错误

bash: syntax error near unexpected token `('

看来你没有显示完整的输出make命令。我认为在出现此错误消息之前,make打印一个echo行(除非您向我们展示的 makefile 实际上不是您调用的,并且您的实际 makefile 添加了一个@在 echo 之前...在这种情况下,您应该在调试时将其删除)。如果您向我们展示了输出是什么,就会更清楚问题所在。你也没有显示输出的内容ifort --version命令是当您从命令行运行它时,但我认为它可能包含括号。

我认为你需要引用的价值VERIFORT打印时变量,这样 shell 就不会解释任何特殊字符:

test:
        echo '$(VERIFORT)'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GNU shell 函数在意外标记“(”附近出现语法错误 的相关文章

随机推荐

  • C# - 调整图像画布大小(保持源图像的原始像素尺寸)

    我的目标是获取图像文件并将尺寸增加到 2 的下一个幂 同时保留像素原样 也称为不缩放源图像 因此基本上最终结果将是原始图像 加上跨越图像右侧和底部的额外空白 因此总尺寸是 2 的幂 下面是我现在正在使用的代码 它创建了具有正确尺寸的图像 但
  • 在 Linux 上获取机器 ID 的最佳方法?

    获取唯一机器 ID 的最佳实践方法是什么GNU Linux for i386建筑学 除了这个还有什么好的办法吗mac地址 根据您的内核 DMI 信息可能可以通过 sysfs 获得 尝试一下 cat sys class dmi id boar
  • git-svn rebase 和 dcommit 问题

    git version 1 7 1 svn version 1 6 12 Ubuntu 10 10 我只有 git 我用过 svn 不过我没一起用过 我有一个 git 存储库 我必须将我的存储库升级为 subversion 存储库 所以我一
  • Drupal 7中用户的图片存储在哪里?

    我正在使用 SelectQuery 对象来检索和显示用户列表 但我不知道从哪里获取用户的图片 users 表有一列名为 picture 但其中的数据只是一个整数 图片是否存储在某个 blob 字段中 或者是否存在指向另一个表中图片的链接 图
  • Android:使用选择器更改按钮背景图像和颜色

    我有一个按钮 我将其背景设置为特定selector 选择器当前更改按钮背景并更改图像作为背景 我还希望更改背景颜色 图像是周围有透明空间的图标 这是选择器
  • PM2 是否应该在开发过程中使用?

    我从 Node js 世界开始 我注意到节点进程不会自动重新启动 通过搜索 我发现 Nodemon 可以完成这项工作 但我还发现 PM2 是 Nodemon 的替代品 那么我应该尝试 PM2 进行开发还是直接将其用于生产并使用 nodemo
  • 使用PHP openssl_verify()函数验证Android客户端APP创建的签名和数据

    我读到了关于帖子openssl verify http php net manual en function openssl verify php 我想问一些与openssl verify 因为我的 PHP 代码无法验证从 Java 创建的
  • 类似于 Android 的 Cocoa Pods 和 Bundler(用于依赖项)?

    有没有类似于bundler ruby 和cocoa pods ios 的东西来管理Android中的依赖关系 Gradle Maven Central 似乎是 Android 的等价物
  • 在 NodeJS 中创建 HTTPS 客户端

    我花了很长时间才弄清楚如何使用 Node js v0 3 8 安全地连接到 HTTP 服务器 我有以下代码 var http require http var client http createClient 443 host secure
  • XSLT 输出格式:保留换行符、删除缩进

    这是我的 XML
  • 如何使用 ChemDraw/Python 从 InChI 创建 .cdx 文件?

    我想使用 Python 从 InChI 创建一个 ChemDraw cdx 文件 这answer https stackoverflow com a 51543307 7295599给出了一个解决方案cdx gt InChI 下面的最小示例
  • VIM 闪烁问题

    我从我的 mac OSX 10 6 8 通过 SSH 连接到运行 centOS5 的学校服务器 当我尝试使用 VIM 时 它不会停止在 mac 终端内闪烁 有想法该怎么解决这个吗 请记住 我无权修改服务器上的任何 etc 文件或 bin 文
  • 在 Spring Boot 应用程序中检索具有相同密钥的多个 aws Secret

    有一个 Spring Boot 应用程序 起始父级为 2 4 8 该应用程序正在连接到多个数据源 并且用于在整个公司创建机密的自动化 Jenkins 作业的方式是 尽管机密名称不同 每个应用程序 源 但它们都具有相同的值 用户名 和 密码
  • 对象输入流错误[重复]

    这个问题在这里已经有答案了 我正在使用 ObjectOutputStream 创建序列化对象的文件 然后 我使用 ObjectInputStream 和 readObject 方法将对象从文件中取出 第一次效果很好 这意味着如果该文件不存在
  • 在 gcc 4.7 中使用 std::bind 编译错误

    我在使用时遇到很多麻烦std bind在我的代码的各个地方 有时它有效 有时则无效 所以我认为我正在做一些根本错误的事情 据我了解 以下基本用法std bind应该可以正常工作 include
  • 如何将 sql_mode 设置为值列表

    我正在尝试使用第二代云 sql 并想更改 sql 模式 在 UI 中 我只能将 sql mode 设置为下拉列表中的一个值 但不能设置多个值 例如 STRICT MODE TRANS ALLOW INVALID DATES 实现这一目标的最
  • 在android 4.0中获取闹钟信息并更改它

    我正在尝试使用以下代码从内容提供商检索警报信息 final String tag alarm tag alarm Uri uri Uri parse content com android deskclock alarm Cursor c
  • 如何使用 tzutc()

    我缺少什么 如何让这个功能发挥作用 import dateutil parser import datetime my date datetime datetime 2000 1 1 0 0 0 000000 tzinfo tzutc pr
  • 新项目的命名约定[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我曾多次尝试回答这个问题 我对我的商店中项目的命名方式不满意 它们通常是根据以下一些项目随机命名的 客户端 项目内部使用 或预期使用的一些技术
  • GNU shell 函数在意外标记“(”附近出现语法错误

    我想确定我的 makefile 中 Intel Fortran 编译器的版本 因此我添加了一些脚本GNU shell功能如下进行测试 VERIFORT shell ifort version VERIFORT shell ifort ver