所有:
有一个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的开头。为什么会这样?非常感谢提前!
最诚挚的问候 南萧
答案 0 :(得分:4)
你错过了shebang中的!
:
#!/bin/bash -x -n
^