程式必須以下面的行開始(必須方在檔案的第一行):
#!/bin/sh
符號#!用來告訴系統它後面的引數是用來執行該檔案的程式。在這個例子中我們使用/bin/sh來執行程式。
當編寫指令碼完成時,如果要執行該指令碼,還必須使其可執行。要使編寫指令碼可執行,編譯 chmod +x filename 這樣才能用./filename 來執行
1.echo -e輸出控制
若字串中出現以下字元,則特別加以處理,而不會將它當成一般文字輸出:
\a 發出警告聲;
\b 刪除前乙個字元;
\c 最後不加上換行符號;
\f 換行但游標仍舊停留在原來的位置;
\n 換行且游標移至行首;
\r 游標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\ 插入\字元;
\nnn 插入nnn(八進位制)所代表的ascii字元;
$echo -e 「a\bdddd」
dddd
$echo -e 「a\adddd」 //輸出同時會發出報警聲音
adddd
$echo -e 「a\ndddd」 //自動換行
a dddd
2.export
用於新增環境變數。
語法:export [-fnp][變數名稱]=[變數設定值]
3.if語句
「if」 [表示式] 如果條件為真則執行then後面的部分:
if [….]; then
…. elif[….]; then
…. else
…. fi
ps :shell裡if用-eq比較數字,字串比較用=。
4.注釋
在進行shell程式設計時,以#開頭的句子表示注釋,直到這一行的結束。
5.變數
在shell程式設計中,所有的變數都由字串組成,並且不需要對變數進行宣告。要賦值給乙個變數,可以這樣寫:
a=」hello world」
ps:有時候變數名很容易與其他文字混淆,比如:
num=2
echo 「this is the $numnd」
這並不會列印出」this is the 2nd」,而僅僅列印」this is the 「。因為shell會去搜尋變數numnd的值,但是這個變數時沒有值的。可以使用花括號來告訴shell我們要列印的是num變數:
num=2
echo 「this is the $nd」
這將列印: this is the 2nd
ps: shell的變數預設是globle的
6.shell也可使用各種linux命令
ls: 檔案列表
cp sourcefile destfile: 檔案拷貝
mv oldname newname : 重新命名檔案或移動檔案
rm file : 刪除檔案
pwd [選項] :檢視」當前工作目錄「的完整路徑
read 變數:從標準輸入中讀取一行,並給變數賦值。
sed:乙個文字編輯命令,是乙個管道命令,可進行文字的增刪改查操作。
$:用來獲取變數的值。
……
指令碼語言和工程語言 語言工程中有趣的事情
指令碼語言和工程語言 如果您閱讀此部落格,您將知道我堅信語言的力量。所以,我當然有很大的偏見,但是我感覺語言工程社群正在增長,並且越來越有趣的東西正在湧現。為此,我認為通過檢視社群中正在發生的事情並列出一些我發現有趣的事情來結束這一年是乙個好主意。一定 要在聖誕節前 ftomasse samharw...
Linux和Windows指令碼語言
本文譯自 isystemadmin 的 list of popular scripting languages for linux and windows 具備指令碼知識的系統管理員與其他系統管理員有著明顯的區別。指令碼是一門 系統管理員 創造的藝術。這門藝術需要了解系統本身的相關知識,系統管理命令...
C語言語法
printf 01f n double 2 1 printf 02f n double 2 1 保留兩位小數 陣列賦值 include memset al,0,sizeof al 輸入浮點數 while scanf lf n eof 字串比較 include char a 11 1234567890...