使用system()执行BASH脚本输出:source:not found

时间:2013-03-06 06:12:18

标签: c bash

所有:
    有一个shell脚本a.sh:

#/bin/bash -x -n

source /etc/profile  

并且test.c程序使用system()函数来调用此脚本:

#include <stdio.h>
int main(void)
{
    system("/data/nan/a.sh");
    return 0;
}  

我在控制台中直接调用a.sh时发现:

./a.sh  

没关系。

但执行c程序:

./test  

打印“source:not found”。

我知道原因可能是system()函数使用/ bin / sh来执行a.sh脚本。但我添加“#/ bin / bash”添加a.sh的开头。为什么会这样?非常感谢提前!

最诚挚的问候 南萧

1 个答案:

答案 0 :(得分:4)

你错过了shebang中的!

#!/bin/bash -x -n
 ^