成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux Bashs Shell撰寫程序實際應用介紹

運維 系統運維
如同在 Linux 中其他的 shell,Bourne Again SHell 不只是一個優秀的指令行式的 shell,同時也提供 scripting 語言。Shell scripting 允許你完全利用 shell 的功能,將需要許多指令執行的多項工作自動化。本文對Linux BASH SHELL 程式設計進行簡單介紹

如同在 Linux 中其他的 shell,Bourne Again SHell 不只是一個優秀的指令行式的 shell,同時也提供 scripting 語言。Shell scripting 允許你完全利用 shell 的功能,將需要許多指令執行的多項工作自動化。在你的 Linux 機器上有許多程序是 shell 程序。如果你對學習他們如何運作,或修改他們感興趣,基本要素是你必須了解 bash 的語法和語意。除此之外,了解 bash 語言,你能夠撰寫你個人專屬的程序,來完成你要做的事情。

PROGRAMMING OR SCRIPTING?
對于剛開始接觸程序設計的新手,常會對于 programming 和 scripting 語言間的差異感到困惑。Programming 語言通常比 Scripting 語言功能更強大,也更快速。例如:C, C++, 和 Java 都是 Programming 語言。 Programming 語言通常是從源代碼 (一個包含最終程序如何執行的指令集合文字檔) 開始,經過編譯 (建立) 成為一個可執行檔。這個可執行檔不容易移植到不同的操作系統中。舉例來說,如果你曾在 Linux 上寫過 C 的程序,你將不能夠在視窗 98 系統上執行這個 C 的程序。要這樣做,你必須在視窗 98 系統之下,重新編譯原始的程序碼。Scripting 語言也是從源代碼開始,但不需編譯成可執行檔。而是由一個直譯器讀入源代碼檔案里的那些指令,再執行每個指令。不幸地,直譯的程序通常比編譯的程序慢,因為直譯器必須讀入每個指令。主要的優點是,你能輕松地轉換源代碼檔案到任何的操作系統,并且立刻以直譯的方式執行。bash 是一種 scripting 語言。它對撰寫小程序而言是不錯的,但如果你打算開發大型的應用程序, programming 語言可能對你比較有益。其他的 scripting 語言有 Perl, Lisp 和 Tcl 等等。

WHAT DO YOU NEED TO KNOW? / 那些是你需要知道的?
撰寫你自己的 shell 程序,需要知道最基本的 Linux 指令。舉例來說,你應該知道要如何拷貝,移動,產生新檔案等等。還有一件事你必須知道,該如何使用文書編輯程序。在 Linux 里有三個主要的文字檔編輯程序 - vi, emacs 和 pico。如果對 vi 或 emacs 并不熟悉,可用 pico 或一些其他容易使用文字檔編輯程序。

WARNING!!! / 警告?。?!
別以 root 的身份來練習!任何情況都可能發生!若你在撰寫程序時發生意外的錯誤,導致系統當掉,我并不負責。你已被警告過了!一定要使用沒有 root 權限的一般使用者帳戶。你甚至可以產生一個新的使用者,專門來練習 shell 程序設計。這樣,最糟的情況只是這個使用者的目錄不見了。

YOUR FIRST BASH PROGRAM / ***個 BASH 程序
我們的***個程序會是典型的 "Hello World" 程序。不要懷疑,若你已有程序設計的經驗,你現在又必須頭疼了。然而,這是傳統,我何德何能改變傳統呢?"Hello World" 程序只是將 "Hello World" 這字眼列印到螢幕上。所以趕快打開你的文字檔編輯程序,鍵入下列的內容:

#!/bin/bash
echo "Hello World"

***行是告訴 Linux 用 bash 直譯器來執行這個程序。在這個范例,bash 是位在 /bin 目錄下。如果在你的系統上, bash 是在不同的目錄,請對這行做適當的更改。另外,要特別說明的是,這個直譯器是非常重要,所以請確定目錄正確否,它告訴 Linux 哪一個直譯器用來執行程序中的那些指令。下一步是把將程序存檔。稱它做 hello.sh 好了。完成后,你需要讓此程序可以執行:

xconsole$ chmod 700 ./hello.sh

如果你不知道該如何更改檔案的權限,就參考 chmod 的手冊(manual page)。一旦更改完成后,你僅需輸入程序的名字,就能執行了:

xconsole$ ./hello.sh
Hello World

就是這個光!就是這個光!你的***個程序完成了!真的就是這樣無聊,沒用,然而每個人都是這樣開始的。只需記得這個程序。撰寫程序碼,存成檔案,再用 chmod 讓它可執行。

COMMANDS, COMMANDS, COMMANDS / 指令,指令,指令
你的***個程序要做什么呢?列印 "Hello World" 這兩個字到螢幕上。但要怎樣做呢?使用指令。在程序中寫的***一行程序碼是 echo "Hello World"。好吧,那一個是指令? echo。echo 程序帶有一個參數,并將此參數列印到螢幕。

所謂參數是指在你所鍵入的程序名稱之后的任何東西。在這個案例中,"Hello World" 是參數,它傳進 echo 指令中。若你輸入這樣的指令 ls /home/root ,那么對 ls 而言, /home/root 是參數。就竟這代表什么呢?代表如果你有一支程序,可將參數列印到螢幕上,你就不需使用 echo 程序。我們假定有支稱為 foo 的程序,能傳入一個參數,一個字串,并且將其列印到螢幕上。我們能同樣地重寫我們的程序:

#!/bin/bash
foo "Hello World"

把它存檔及更改存取模式(chmod),然后執行:

xconsole$ ./hello
Hello World

結果完全一樣。究竟有***的程序碼嗎?沒有。你真的能寫任何程序?除非你是 echo 程序的作者。你所做的,是將 echo 程序放在你的 shell 程序內,并給一個參數。在現實的世界中,例子中 echo 指令的另一選擇是 printf 指令。printf 提供比較多的控制,如果你熟悉 C 語言的程序設計就會明了。事實上,要得到完全相同的結果不必寫一個 shell 程序:

xconsole$ echo "Hello World"
Hello World

bash shell 程序設計提供了多樣的控制方式,而且容易學習。就如你剛看到一樣,你用 Linux 指令來寫你的 shell 程序了。你的 shell 程序是將其他的程序聚集在一起,來執行特定的任務。

A MORE USEFUL PROGRAM / 更有用的程序
我們將撰寫一個程序,功能是移動所有的檔案到一個目錄內,然后刪除此目錄及其內容,然后再產生此目錄。這可由下列的指令來完成:

xconsole$ mkdir trash
xconsole$ mv * trash
xconsole$ rm -rf trash
xconsole$ mkdir trash

不需在交談式的 shell 上敲進所有指令,改用撰寫個 shell 程序:

#!/bin/bash
mkdir trash
mv * trash
rm -rf trash
mkdir trash
echo "Deleted all files!"

把它以 clean.sh 存檔,現在你所要做的是執行 clean.sh,它會移動所有的檔案到一個目錄,刪除他們,再產生目錄,而且列印一個訊息告訴你,它已成功地刪除所有的檔案。所以記得,如果你發現要做的某些事,要一而再,再而做三地做下去,考慮用個 shell 程序來自動執行。

COMMENTS / 注解
注解可讓你的程序更容易明了,這樣并不影響程序的輸出結果。目的就是來特別幫你明了程序。所有在 bash 里的注解,***個字元都是用井字符號 (hash symbol):"#",除了***個行 (#!/bin/bash) 外。 ***行并不是注解。在***行之后,其馀以 "#" 開始的任何一行都是注解??聪铝械某绦蚱危?

#!/bin/bash
# 這個程序從 1 記錄到 10:
for i in 1 2 3 4 5 6 7 8 9 10; do
echo $i
done

即使你不知道 bash 的程序設計,因為注解的關系,也能立刻知道上述的程序在做什么事。使用注解是很好的習慣。你將發現若未來需要維護你的程序,有注解會比較容易。

【編輯推薦】

  1. Linux Bash命令關于程序調試詳解 
  2. Linux Bash命令關于快捷鍵應用
  3. Linux Bash Shell系統的應用詳解
  4. Linux Bash具體安裝步驟及使用介紹
  5. Linux Bash命令查詢相關事件詳解
責任編輯:chenqingxiang 來源: linux寶庫
相關推薦

2009-12-18 10:58:17

Linux應用程序

2010-04-09 16:26:53

Oracle join

2009-12-14 18:09:32

路由選擇協議

2010-04-27 09:28:55

綁定變量

2010-04-21 12:35:01

Oracle導入

2010-05-24 09:24:15

MySQL 備份

2010-06-24 14:08:25

Linux Cat命令

2010-06-23 16:31:10

Linux Bash

2010-06-23 17:16:33

Linux Bash

2010-01-07 18:17:00

VB.NET連接SAP

2010-03-29 11:31:45

2010-03-19 14:59:00

python Stri

2010-04-15 09:36:42

2010-06-23 16:05:36

Linux Bash

2010-03-17 15:58:08

Python環境

2010-04-23 11:15:43

Oracle創建

2023-07-27 17:41:02

BashZshFish

2010-03-23 18:20:26

Python os.g

2009-07-29 15:15:31

ASP應用程序

2010-01-25 13:29:53

Android本地應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91综合网| 国产在线一区二区三区 | 伊人亚洲| 欧美一区二区三区国产 | 鲁大师一区影视 | 国产精品久久久久久久久久免费看 | 欧美综合一区二区 | 亚洲欧洲激情 | 亚洲网站在线观看 | 91亚洲国产成人久久精品网站 | 成人黄色电影在线播放 | 日韩视频国产 | 91精品国模一区二区三区 | 岛国毛片在线观看 | 作爱视频免费看 | 久久免费精品 | 老司机成人在线 | 国产一区二区三区在线看 | 精品久久久久久久久久久 | 91一区二区 | 亚洲黄色高清视频 | 成人性视频免费网站 | 综合伊人 | 亚洲一区二区三区在线观看免费 | 国产精品一区久久久 | 麻豆av网| 午夜男人天堂 | 久久久久国产一级毛片 | 性一区| 国产精品久久久久久久久免费软件 | 91在线免费视频 | 天天影视网天天综合色在线播放 | 99精品在线观看 | 狠狠伊人 | 精品在线一区二区 | 一区精品国产欧美在线 | 国产免费一区二区 | 欧美精品在线观看 | 国产成人精品一区二区三区 | 欧美国产日韩在线观看成人 | 国产亚洲欧美另类一区二区三区 |