在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ 第一個(gè) Shell 腳本
Shell 特殊變量:Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)
Shell 文件包含
Shell 輸入輸出重定向:Shell Here Document,/dev/null
Shell 函數(shù)參數(shù)
Shell 簡(jiǎn)介
Shell printf命令:格式化輸出語(yǔ)句
第一個(gè) Shell 腳本
Shell echo 命令
Shell 運(yùn)算符:Shell 算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、布爾運(yùn)算符、字符串運(yùn)算符等
Shell 數(shù)組:shell 數(shù)組的定義、數(shù)組長(zhǎng)度
Shell until 循環(huán)
Shell if else 語(yǔ)句
Shell 變量:Shell 變量的定義、刪除變量、只讀變量、變量類型
Shell 字符串
Shell 與編譯型語(yǔ)言的差異
Shell 函數(shù):Shell 函數(shù)返回值、刪除函數(shù)、在終端調(diào)用函數(shù)
Shell 替換
Shell case esac 語(yǔ)句
Shell for 循環(huán)
什么時(shí)候使用 Shell
Shell 注釋
幾種常見(jiàn)的 Shell
Shell while 循環(huán)
Shell break 和 continue 命令

第一個(gè) Shell 腳本

打開(kāi)文本編輯器,新建一個(gè)文件,擴(kuò)展名為 sh(sh 代表 shell),擴(kuò)展名并不影響腳本執(zhí)行,見(jiàn)名知意就好,如果你用 php 寫(xiě) shell 腳本,擴(kuò)展名就用 php 好了。

輸入一些代碼:

#!/bin/bash
echo "Hello World !"

“#!” 是一個(gè)約定的標(biāo)記,它告訴系統(tǒng)這個(gè)腳本需要什么解釋器來(lái)執(zhí)行,即使用哪一種 Shell。echo命令用于向窗口輸出文本。

運(yùn)行 Shell 腳本有兩種方法。

作為可執(zhí)行程序

將上面的代碼保存為 test.sh,并 cd 到相應(yīng)目錄:

chmod +x ./test.sh  #使腳本具有執(zhí)行權(quán)限
./test.sh  #執(zhí)行腳本

注意,一定要寫(xiě)成 ./test.sh,而不是 test.sh。運(yùn)行其它二進(jìn)制的程序也一樣,直接寫(xiě)test.sh,linux 系統(tǒng)會(huì)去 PATH 里尋找有沒(méi)有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的當(dāng)前目錄通常不在 PATH 里,所以寫(xiě)成 test.sh 是會(huì)找不到命令的,要用 ./test.sh 告訴系統(tǒng)說(shuō),就在當(dāng)前目錄找。

通過(guò)這種方式運(yùn)行 bash 腳本,第一行一定要寫(xiě)對(duì),好讓系統(tǒng)查找到正確的解釋器。

這里的"系統(tǒng)",其實(shí)就是 shell 這個(gè)應(yīng)用程序(想象一下 Windows Explorer),但我故意寫(xiě)成系統(tǒng),是方便理解,既然這個(gè)系統(tǒng)就是指 shell,那么一個(gè)使用 /bin/sh 作為解釋器的腳本是不是可以省去第一行呢?是的。

作為解釋器參數(shù)

這種運(yùn)行方式是,直接運(yùn)行解釋器,其參數(shù)就是 shell 腳本的文件名,如:

/bin/sh test.sh
/bin/php test.php

這種方式運(yùn)行的腳本,不需要在第一行指定解釋器信息,寫(xiě)了也沒(méi)用。

再看一個(gè)例子。下面的腳本使用 read 命令從 stdin 獲取輸入并賦值給 PERSON 變量,最后在 stdout 上輸出:

#!/bin/bash

# Author : mozhiyan
# Copyright (c) http://see.xidian.edu.cn/cpp/linux/
# Script follows here:

echo "What is your name?"
read PERSON
echo "Hello, $PERSON"

運(yùn)行腳本:

chmod +x ./test.sh
$./test.sh
What is your name?
mozhiyan
Hello, mozhiyan
$