2011-05-11 25 views
4

我有一個簡單的問題。我想在一個shell腳本中執行一個C程序。我怎麼做?感謝您的幫助提前。如何在shell腳本中調用C程序?

+1

只需將程序名稱放在行上即可。你試過了什麼,發生了什麼? – FrustratedWithFormsDesigner 2011-05-11 20:09:09

+3

這個問題要麼太簡單,要麼太複雜。請提供一個你想要做什麼的例子。所有在shell腳本中發生的事情都涉及調用C程序。 – 2011-05-11 20:09:34

+1

在shell腳本中不執行任何C程序會更具挑戰性...... – jlliagre 2011-05-11 20:30:32

回答

6

假設這是LINUX/UNIX我們在談論:

#!/bin/sh 
/path/to/executable arg1 arg2 
4
cc hello_world.C#produces a.out 
./a.out #run your program 

恕我直言,你的問題是$ PATH。您當前的目錄不在PATH,所以當你進入

a.out 

你的shell迴應:

-bash: a.out: command not found 

應該執行它

./a.out 

(或加 「」到你的PATH,但這是不是推薦。)

2

幾乎每個在shell腳本中執行的程序都是一個C程序(但是執行的命令中的一些,通常很多可能會內置到shell中)。你以同樣的方式與任何其他程序執行C程序:

  • 通過基本名稱:command [arg1 ...]
    • 的命令必須由外殼搜索的目錄 - 在你的PATH,換句話說。
  • 通過相對名稱:./command [arg1 ...]../../bin/command [arg1 ...]
    • 程序必須存在且是可執行文件(由你)
  • 通過絕對名稱:/some/directory/bin/command [arg1 ...]
    • 程序必須存在且可執行(by you)

Unix的美妙之處在於,您創建的程序無論是使用C還是其他語言,都可以獲得與系統提供的命令相同的狀態。唯一的區別是系統提供的命令與您創建的命令(例如usr/local/bin$HOME/bin)位於不同的位置(例如/bin/usr/bin)。

相關問題