gpt4 book ai didi

c - 循环 C 编译并通过 BASH 运行

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:13 26 4
gpt4 key购买 nike

我正在尝试编译和运行 C 代码,同时通过 bash 循环输入文件。这是我用来自动化它的 bash 脚本的代码。

 ~!/bin/bash
file=1
outfile='outputnumber'$file
readsfile='readsfilename'$file'.txt'
compilefile=compiler$file'.o'
gcc -lgsl -lgslcblas -std=c99 filewithccode.c -o $compilefile
echo "Compilation over"
./$compilefile $outfile $readsfile

所以我基本上想做的是编译 filewithcode.c,以便将可执行文件存储为 compiler1,它将 outputnumber1 和 readsfilename1.txt 作为输入。我想这样做的原因是我可以在"file"上循环它并为多个文件(我有 45 个文件)自动执行它并自动执行。但我收到错误:

Segmentation fault      (core dumped) ./$compilefile $outfile $readsfile

我正在尝试为编译后的文件使用不同的名称,因为我正在尝试在服务器上并行运行它们,但我不确定使用相同的输出名称进行编译是否会导致问题。

有什么建议吗?我知道可能是 "./$" 导致了这个错误,因为 BASH 正在回应“编译结束”。

最佳答案

你的最后一行,因为它只是放在一行上的变量,可能会导致你的脚本无法正确解释它。您可以尝试将其变成一个字符串,然后对该字符串使用 exec 命令。例如:

comm="./""$compilefile $outfile $readsfile"
exec $comm

这让我在过去引用变量时避免了很多语法上的麻烦。

关于c - 循环 C 编译并通过 BASH 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35065990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com