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