Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Makefile中使用bash时出现奇怪的segfault_Bash_Gnu Make - Fatal编程技术网

在Makefile中使用bash时出现奇怪的segfault

在Makefile中使用bash时出现奇怪的segfault,bash,gnu-make,Bash,Gnu Make,我需要在Makefile中逐行读取文件。 以下情况会触发SEGA故障: all: @cat myFile.txt | while read -r line; do echo $$(line); done 奇怪的是,以下作品(打印文件内容): 知道问题的原因吗?好吧,$(行)(也就是说,Make取消转义后的代码)不会执行您期望的操作。它是一个将执行文本命令行,该命令可能是系统上的命令,也可能不是系统上的命令 一般来说,任何需要转义字符或在shell脚本中编写为多行的内容都应该在shell

我需要在Makefile中逐行读取文件。 以下情况会触发SEGA故障:

all:
    @cat myFile.txt | while read -r line; do echo $$(line); done
奇怪的是,以下作品(打印文件内容):

知道问题的原因吗?

好吧,
$(行)
(也就是说,Make取消转义后的代码)不会执行您期望的操作。它是一个将执行文本命令
,该命令可能是系统上的命令,也可能不是系统上的命令

一般来说,任何需要转义字符或在shell脚本中编写为多行的内容都应该在shell脚本中。这样可以省去你的麻烦。

好吧,
$(行)
(也就是说,Make取消转义后的代码)不会达到你期望的效果。它是一个将执行文本命令
,该命令可能是系统上的命令,也可能不是系统上的命令


一般来说,任何需要转义字符或在shell脚本中编写为多行的内容都应该在shell脚本中。这样可以省去麻烦。

Shell变量可以用大括号括起来
${line}
;Make变量可以括在大括号
${line}
或大括号
$(line)
中。Shell变量可以括在大括号
${line}
中;Make变量可以括在括号
${line}
或括号
$(line)
中。
all:
    @cat myFile.txt | while read -r line; do echo $$line; done