在我的項目中,系統中各種目錄,文件和其他組件的路徑數量存儲爲,這是filenames.h
中的一個文件,它是所有需要它們的文件。它適用於編譯生成的所有各種二進制文件,但該項目還包含一些使用相同路徑的shell腳本。目前這意味着隨着路徑的變化,我所要做的就是編輯filenames.h
並重新編譯以獲取可執行文件集以理解新路徑,但我必須手動編輯每個shell腳本。將C#定義爲shell變量
所以問題是,如何使#defines
進入shell變量,例如生成一些filenames.sh
腳本,該腳本可以從其他腳本調用來初始化它們。因此,例如:
#define TMP_PATH "/ait/tmp/"
#define SYNCTMZFILE TMP_PATH "sync_tmz"
將創造
TMP_PATH="/ait/tmp/"
SYNCTMZFILE="/ait/tmp/sync_tmz"
當然,有可能寫一個ç程序創建它(甚至打印出來到標準輸出,然後在反引號執行它在外殼中),但我更喜歡更簡單,更強大的方法,比如說,編寫一個類似half-C的半殼,通過cpp
就可以創建正確的輸出,或者類似的東西。
不幸的是,它在第二個#define中沒有很好的複合語句。 –
我編輯的答案應該更好。 – mouviciel