C語言和SH指令碼的雜交程式碼
在網上看到了一個把 C語言和bash雜並起來的例子,這個示子如下所示。在下面這個例子中,我們把指令碼用#if 0這個預編譯給起來,這樣就不會讓其編譯到C語言中了。
1 #if 0
2 echo "Hello from bash!"
3 exit
4 #endif
5 #include <stdlib.h>
6 #include <stdio.h>
7 int main(int argc, char* argv[]) {
8 puts("Hello from C!");
9 return EXIT_SUCCESS;
10 }
下面,讓我看看如果來使用這樣的程式:
1 $ sh test.sh.c
2 Hello from bash!
3 $ gcc test.sh.c -o test
4 $ ./test
5 Hello from C!
你甚至還可以做一個自我編譯,並自我執行的原始碼。如下所示:
1 #if 0
2 file=`mktemp`
3 gcc -o $file $0
4 $file
5 rm $file
6 exit
7 #endif
8 #include <stdlib.h>
9 #include <stdio.h>
10
11 int main(int argc, char *argv[]) {
12 puts("Hello from C!");
13 return EXIT_SUCCESS;
14 }
執行:
1 $ sh test.sh.c
2 Hello from C!
3
$
當然,我並不建議你在真正的開發環境中這樣使用,我只不過是在介紹一個比較有趣的用法,僅此而已!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31365439/viewspace-2679794/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 編寫git指令碼.shGit指令碼
- sh指令碼執行報錯指令碼
- C++ 的指令碼語言:ChaiScriptC++指令碼AI
- Linux核心筆記003 - Linux核心程式碼裡面的C語言和組合語言Linux筆記C語言組合語言
- Oracle:GRID 下 root.sh 指令碼Oracle指令碼
- Linux定時執行.sh指令碼Linux指令碼
- sh指令碼判斷路徑是否存在指令碼
- springboot的jar在linux上sh啟動指令碼Spring BootJARLinux指令碼
- 聊聊C語言和ABAPC語言
- 聊聊 C 語言和 ABAP 這兩門程式語言的關係
- 在 Linux 中執行.sh 指令碼 No such file or directoryLinux指令碼
- Oracle RAC重新執行root.sh指令碼Oracle指令碼
- linux系統軟體啟動sh指令碼Linux指令碼
- [20241114]建立完善ext_kglob.sh指令碼.txt指令碼
- 獲取sql完整指令碼,get_fulltext.shSQL指令碼
- shell指令碼頭,#!/bin/sh與#!/bin/bash的區別.指令碼
- oracle_ray.sh 常用的oracle sql功能指令碼OracleSQL指令碼
- C# 指令碼C#指令碼
- linux編寫.sh指令碼並賦許可權Linux指令碼
- C語言簡單程式碼程式C語言
- shell指令碼編碼格式問題,bin/sh^M: bad interpreter: No such file or directory指令碼
- awk指令碼語言程式設計指南指令碼程式設計
- ASP程式中常使用的幾種指令碼語言指令碼
- C 語言程式碼總結
- 聊聊C語言和指標的本質C語言指標
- 程式碼上線的shell指令碼指令碼
- 降低程式碼的圈複雜度——複雜程式碼的解決之道複雜度
- 詳解shell中source、sh、bash、./執行指令碼的區別指令碼
- Shell 指令碼語句指令碼
- 【指令碼】shell語法指令碼
- 為什麼自制指令碼語言是程式語言的最高境界?指令碼
- 【Kafka】Kafka-Server-start.sh 啟動指令碼分析(Ver 2.7.2)KafkaServer指令碼
- C 語言程式碼風格之 Linux 核心程式碼風格Linux
- Locust 程式碼指令碼實現指令碼
- Linux Shell指令碼程式設計while語句案例Linux指令碼程式設計While
- 比特幣指令碼語言比特幣指令碼
- C#指令碼引擎RulesEngineC#指令碼
- [20211011]計算sql_id.sh指令碼的一些補充.txtSQL指令碼