background preloader

Linux

Facebook Twitter

學習 Shell Scripts. 什麼是 shell script (程式化腳本) 呢?

學習 Shell Scripts

就字面上的意義,我們將他分為兩部份。 在『 shell 』部分,我們在 十一章的 BASH 當中已經提過了,那是一個文字介面底下讓我們與系統溝通的一個工具介面。 那麼『 script 』是啥? 字面上的意義, script 是『腳本、劇本』的意思。 整句話是說, shell script 是針對 shell 所寫的『劇本!』 什麼東西啊? 所以,簡單的說, shell script 就像是早期 DOS 年代的批次檔 (.bat) ,最簡單的功能就是將許多指令彙整寫在一起, 讓使用者很輕易的就能夠 one touch 的方法去處理複雜的動作 (執行一個檔案 "shell script" ,就能夠一次執行多個指令)。 這麼說你可以瞭解了嗎? 幹嘛學習 shell scripts 這是個好問題:『我又幹嘛一定要學 shell script ? 自動化管理的重要依據:不用鳥哥說你也知道,管理一部主機真不是件簡單的事情,每天要進行的任務就有: 查詢登錄檔、追蹤流量、監控使用者使用主機狀態、主機各項硬體設備狀態、 主機軟體更新查詢、更不要說得應付其他使用者的突然要求了。

上面這些都是你考慮學習 shell script 的特點~此外, shell script 還可以簡單的以 vim 來直接編寫,實在是很方便的好東西! 不過,雖然 shell script 號稱是程式 (program) ,但實際上, shell script 處理資料的速度上是不太夠的。 第一支 script 的撰寫與執行 如同前面講到的,shell script 其實就是純文字檔,我們可以編輯這個檔案,然後讓這個檔案來幫我們一次執行多個指令, 或者是利用一些運算與邏輯判斷來幫我們達成某些功能。 指令的執行是從上而下、從左而右的分析與執行; 指令的下達就如同第五章內提到的: 指令、選項與參數間的多個空白都會被忽略掉; 空白行也將被忽略掉,並且 [tab] 按鍵所推開的空白同樣視為空白鍵; 如果讀取到一個 Enter 符號 (CR) ,就嘗試開始執行該行 (或該串) 命令; 至於如果一行的內容太多,則可以使用『 \[Enter] 』來延伸至下一行; 『 # 』可做為註解! 如此一來,我們在 script 內所撰寫的程式,就會被一行一行的執行。 撰寫第一支 script 第一行 #!

OK! Linux Knowledge Base and Tutorial. Debugging with GDB. Makefile详解 变量高级用法 追加变量值_清清. Makefile详解 变量高级用法 追加变量值 变量高级用法 这里介绍两种变量的高级使用方法,第一种是变量值的替换。

makefile详解 变量高级用法 追加变量值_清清

还是看一个示例吧: foo := a.o b.o c.o bar := $(foo:.o=.c) 这个示例中,我们先定义了一个“$(foo)”变量,而第二行的意思是把“$(foo)”中所有以“.o”字串“结尾”全部替换成“.c”,所以我们的“$(bar)”的值就是“a.c b.c c.c”。 另外一种变量替换的技术是以“静态模式”(参见前面章节)定义的,如: foo := a.o b.o c.o bar := $(foo:%.o=%.c) 这依赖于被替换字串中的有相同的模式,模式中必须包含一个“%”字符,这个例子同样让$(bar)变量的值为“a.c b.c c.c”。 第二种高级用法是——“把变量的值再当成变量”。 X = y y = z a := $($(x)) 在这个例子中,$(x)的值是“y”,所以$($(x))就是$(y),于是$(a)的值就是“z”。 我们还可以使用更多的层次: x = y y = z z = u a := $($($(x))) 这里的$(a)的值是“u”,相关的推导留给读者自己去做吧。 让我们再复杂一点,使用上“在变量定义中使用变量”的第一个方式,来看一个例子: x = $(y) y = z z = Hello a := $($(x)) 这里的$($(x))被替换成了$($(y)),因为$(y)值是“z”,所以,最终结果是:a:=$(z),也就是“Hello”。 再复杂一点,我们再加上函数: x = variable1 variable2 := Hello y = $(subst 1,2,$(x)) z = y a := $($($(z))) 这 个例子中,“$($($(z)))”扩展为“$($(y))”,而其再次被扩展为“$($(subst 1,2,$(x)))”。 Linux Shell脚本编写基础 - 技术文档 - 新手入门 Linux时代. Linux Tutorial - Static, Shared Dynamic and Loadable Linux Libraries. This methodology, also known as "shared components" or "archive libraries", groups together multiple compiled object code files into a single file known as a library.

Linux Tutorial - Static, Shared Dynamic and Loadable Linux Libraries

Typically C functions/C++ classes and methods which can be shared by more than one application are broken out of the application's source code, compiled and bundled into a library. The C standard libraries and C++ STL are examples of shared components which can be linked with your code. The benefit is that each and every object file need not be stated when linking because the developer can reference the individual library.

This simplifies the multiple use and sharing of software components between applications. It also allows application vendors a way to simply release an API to interface with an application. There are two Linux C/C++ library types which can be created: Static libraries (.a): Library of object code which is linked with, and becomes part of the application. Library naming conventions: Compiler options: Linux常用命令全集.