我有简单的bash脚本
#!/bin/bash make ./code1_test/test_syn1 ./code2_test/test_syn2 ./code3_test/test_syn3
test\u syn是我的程序测试。在所有这些程序中,我都使用fopen命令打开。txt文件。如果我从命令行运行程序,我有一个正确的测试输出,但是当我使用这个bash脚本时,fopen会返回NULL,所以我无法打开我的脚本。txt文件,我无法运行测试。为什么会发生这种情况,我该如何解决?
如果您正在使用 fopen() 对于相对路径,您应该从其目录执行脚本。试试这个:
fopen()
#!/bin/bash make (cd code1_test/ && exec ./test_syn1) (cd code2_test/ && exec ./test_syn2) (cd code3_test/ && exec ./test_syn3)
否则,您的程序将尝试打开 .txt 在运行Bash脚本的目录中,这不是您想要的。
.txt
如果你想在任何地方运行你的程序,你可以尝试不使用相对路径 fopen() .