歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Linux Bash Shell入門教程

BASH 的基本語法

  • 最簡單的例子 —— Hello World!

  • 關於輸入、輸出和錯誤輸出

  • BASH 中對變量的規定(與 C 語言的異同)

  • BASH 中的基本流程控制語法

  • 函數的使用

整數操作 字符串操作 相同 -eq = 不同 -ne != 大於 -gt > 小於 -lt < 大於或等於 -ge   小於或等於 -le   為空   -z 不為空   -n


比如:

比較字符串 a 和 b 是否相等就寫作:if [ $a = $b ]
判斷字符串 a 是否為空就寫作:if [ -z $a ]
判斷整數變量 a 是否大於 b 就寫作:if [ $a -gt $b ]

更細致的文檔推薦在字符串比較時盡量不要使用 -n ,而用 ! -z 來代替。(其中符號 "!" 表示求反操作)

BASH 中的變量除了用於對 整數 和 字符串 進行操作以外,另一個作用是作為文件變量。BASH 是 Linux 操作系統的 Shell,因此系統的文件必然是 BASH 需要操作的重要對象,如 if [ -x /root ] 可以用於判斷 /root 目錄是否可以被當前用戶進入。下表列出了 BASH 中用於判斷文件屬性的操作符:

運算符 含義( 滿足下面要求時返回 TRUE ) -e file 文件 file 已經存在 -f file 文件 file 是普通文件 -s file 文件 file 大小不為零 -d file 文件 file 是一個目錄 -r file 文件 file 對當前用戶可以讀取 -w file 文件 file 對當前用戶可以寫入 -x file 文件 file 對當前用戶可以執行 -g file 文件 file 的 GID 標志被設置 -u file 文件 file 的 UID 標志被設置 -O file 文件 file 是屬於當前用戶的 -G file 文件 file 的組 ID 和當前用戶相同 file1 -nt file2 文件 file1 比 file2 更新 file1 -ot file2 文件 file1 比 file2 更老


注意:上表中的 file 及 file1、file2 都是指某個文件或目錄的路徑。

2.3.1.1. 關於局部變量

在 BASH 程序中如果一個變量被使用了,那麼直到該程序的結尾,該變量都一直有效。為了使得某個變量存在於一個局部程序塊中,就引入了局部變量的概念。BASH 中,在變量首次被賦初值時加上 local 關鍵字就可以聲明一個局部變量,如下面這個例子:

#!/bin/bash
HELLO=Hello
function hello {
local HELLO=World
echo $HELLO
}
echo $HELLO
hello
echo $HELLO

該程序的執行結果是:

Hello
World
Hello

這個執行結果表明全局變量 $HELLO 的值在執行函數 hello 時並沒有被改變。也就是說局部變量 $HELLO 的影響只存在於函數那個程序塊中。

2.3.2. BASH 中的變量與 C 語言中變量的區別

這裡我們為原來不熟悉 BASH 編程,但是非常熟悉 C 語言的程序員總結一下在 BASH 環境中使用變量需要注意的問題。

1,BASH 中的變量在引用時都需要在變量前加上 "$" 符號( 第一次賦值及在For循環的頭部不用加 "$"符號 );
2,BASH 中沒有浮點運算,因此也就沒有浮點類型的變量可用;
3,BASH 中的整形變量的比較符號與 C 語言中完全不同,而且整形變量的算術運算也需要經過 let 或 expr 語句來處理;

請繼續閱讀: http://www.linuxidc.com/Linux/2013-08/88487p2.htm

Copyright © Linux教程網 All Rights Reserved