一直都在聽他們說,寫個指令碼做什麼什麼事情。對於指令碼,本來就沒有什麼概念,一切從零開始吧!
首先要了解
linux
下指令碼的概念,這裡有說:
shell
是乙個命令直譯器
.是介於作業系統
kernel
與使用者之間的乙個絕緣層
.準確地說
,它也是一種強力的計算機語言.乙個
shell 程式,
被稱為乙個指令碼
,是一種很容易使用的工具
,它可以通過將系統呼叫
,公共程式,工具
,和編譯過的二進位制程式粘合在一起來建立應用。
什麼是shell
?就是那個絕緣層啦
~ 使用者和
kernel
打交道的那個介面,通道,路徑
~什麼是指令碼?就是絕緣層下的乙個程式啦
~ 既然是程式就有其語法和編寫的規範等等啦
~它有什麼作用?就是將系統呼叫,公共程式,工具,和編譯過的二進位制程式粘合在一起來建立應用
~ 聽起來似乎很有用,粘合功能很強大( ⊙
o ⊙)!
到此~概念清晰啦
~linux
下sdk
的測試中,我主要進行功能測試,測試的手段也是寫
c**手動執行測試,好像沒有指令碼什麼事,直到我想在開機的時候自己載入兩個驅動程式,本著好學不倦的精神,本來可以手動載入的,但是剛好可以學習一下寫指令碼,以後還有用的著的地方呢,就開始學習啦
~網上搜資料
……向同事請教
……1.
指令碼的語法
頭一次寫指令碼,根本沒見過指令碼是什麼樣的,跑去問
yf,怎麼寫指令碼呢?
yf就開啟乙個她寫的指令碼,給我看,必須要這樣開頭,布拉布拉
~講了一通,我回來了,又在網上搜了篇文章《
linux
指令碼編寫基礎》
,寫了第乙個指令碼
~只有一句話
~echo
在每個指令碼的開頭都使用
"#!",
這意味著告訴你的系統這個檔案的執行需要指定乙個直譯器
.#!實際上是乙個
2 位元組的魔法數字
,這是指定乙個檔案型別的特殊標記
, 換句話說
, 在這種情況下
,指的就是乙個可執行的指令碼(鍵入
man magic
來獲得關於這個迷人話題的更多詳細資訊).在
#!之後接著是乙個路徑名
.這個路徑名指定了乙個解釋指令碼中命令的程式
,這個程式可以是
shell,
程式語言或者是任意乙個通用程式
.這個指定的程式從頭開始解釋並且執行指令碼中的命令(從
#!行下邊的一行開始
),忽略注釋.如
:1 #!/bin/sh
2 #!/bin/bash
3 #!/usr/bin/perl
4 #!/usr/bin/tcl
5 #!/bin/sed -f
6 #!/usr/awk -f
上邊每乙個指令碼頭的行都指定了乙個不同的命令直譯器
,如果是
/bin/sh,
那麼就是預設
shell(
在linux
系統中預設是
bash).
使用#!/bin/sh,
在大多數商業發行的
unix 上,
預設是bourne
shell,
這將讓你的指令碼可以正常的執行在非
linux
機器上,
雖然這將會犧牲
bash
一些獨特的特徵
.指令碼將與
posix
的sh
標準相一致
.退出命令
exit 0
# 退出之前返回
0,返回
0 表示成功
.嘿嘿,有了開頭和結尾,怎麼把那些有用的語句加上去,我想來想去,試了一下,原來是直接把命令敲到指令碼裡就行啦
-_-||
,當然這是最簡單的用法啦,再複雜的我也沒有接觸到~2.
指令碼如何執行
編寫完指令碼之後
,就可以使用
sh scriptname
或者bash scriptname
來呼叫它
.(不推薦使用
sh 因為這禁用了指令碼從
stdin
中讀資料的功能
.)更方便的方法是讓指令碼本身就具有可執行許可權,通過
chmod
命令可以修改.比如
:chmod 555 scriptname (
允許任何人都具有
可讀和執行許可權)或
:chmod +rx scriptname (
允許任何人都具有
可讀和執行許可權
)chmod u+rx scriptname (
只給指令碼的所有者
可讀和執行許可權)3.
指令碼如何開機執行
這裡主要講兩種方法:
a.開啟
/etc/rc.d/rc.local
,把開機要執行的命令加進去,就可以達到開機執行某個命令的目的啦
~這個方法我雖然沒有試過,但看
rc5.d
的最後乙個鏈結
s99local
,應該沒有問題;
b.把寫好的指令碼放到
/etc/rc.d/init.d
路徑下,在
rc5.d
中建立乙個鏈結,同樣可以達到開機執行的目的,比較第一種方法,這種方法就是更獨立,也可以自由選擇開機執行的次序。
大概就是以上幾點了,當然期間還遇到了一些問題,幸有高人相助,我在開機時載入驅動的目標終於達到啦
~這就是我的
linux
指令碼學習之路,回頭想想,學習時兩點最重要:
1.有高人示範指點,有些東西,看別人做一遍,勝過自己摸索很久,這裡要謝謝yf和
yj~2.
起初在網上蒐集資料,有點大海撈針,不得要點,還是老老實實看本書,學的更快,謝謝
yj共享的書,真的覺得很好,高階
bash
指令碼程式設計指南,想學指令碼的就先別去大海浬撈針了,從這本書入門,再去大海浬撈金吧
~
linux指令碼學習
最近又重新撿起了以前放在一邊的linux指令碼了,呵呵,最開始學習linux指令碼編寫是在搭建linux下的qmail郵件伺服器的時候。那時候由於qmail要安裝很多軟體包,所以就把命令整理成乙個指令碼來一次批處理執行,那時也學到了linux下的shell程式設計。指令碼其實多半就是終端命令的乙個集...
linux指令碼學習
進入當前指令碼所在目錄 其他神馬方法都是浮雲 sh dir x echo 0 grep if test then sh dir dirname 0 else sh dir dirname pwd 0 ficd sh dir 指令碼暫停 bash c read n1 p press any key t...
linux指令碼學習
進入當前指令碼所在目錄 對於軟鏈結不行 curr dir cd dirname 0 pwd cd curr dir for迴圈 for i 1 i 10 i do echo i sleep 1 done 指令碼暫停 bash c read n1 p press any key to continue...