一.shell的基本認識
shell 就是命令解析器,將用戶輸入的指令轉換爲相應的機器能夠運行的程序。
shell種類: Bourne Shell (sh)
Korn Shell (ksh)
Bourne Again Shell (bash)
C Shell (包括csh and tcsh)
TENEXITOPS C Shell (tcsh)
二.shell腳本
shell 腳本:是一種包含一系列命令序列的文本文件。當運行這個腳本文件時,文件中包含的命令序列將等到執行。
執行sh文件命令,常用的有兩種方式:sh hello.sh 或者 ./shello.sh
以上的執行,都是切換到sh腳本所在目錄的執行方式。如果不在sh腳本所在的目錄,但是擁有執行權限的話,可以使用指定路徑的方式執行。例如:/data/shell/hello.sh
三.shell腳本的編寫
語法:
shell腳本的第一行必須是如下格式:#! /bin/sh
當編輯好腳本後,如果要執行該腳本,還必須要使其具有可執行屬性。
可執行屬性的設置命令:chmod +X filename
變量:
shell編程中,所有變量都是由字符串組成,並不需要預先對變量進行聲明。
例:(斜體爲註解,實際腳本中不存在,不能寫)
#! /bin/sh
# set variable a //該行爲註釋:設置一個變量a
a=”hello world”
# print a
echo ”A is :” //打印A is :並換行
echo $a //使用變量a的值:hello world
有時候變量的使用很容易與其他文字混淆。
例如:num=2
echo ”this is the $numnd”
輸出爲:this is the
原因:因爲在解析時,會把numnd 當成變量,而numnd不存在,爲空。
如改:num=2
echo ”this is the ${num}nd”
輸出爲:this is the 2nd
默認變量:
$# :傳入腳本的命令行參數個數
$* :所有命令參數值,在各個參數之間留有空格
$0 :命令本身(shell文件名)
$1 :第一個命令行參數
$2 :第二個命令行參數
……<依次類推>
例:test1.sh
#!/bin/sh
echo ”number of vars:”$#
echo ”number of vars:”$*
echo ”number of vars:”$1
echo ”number of vars:”$2
echo ”number of vars:”$3
echo ”number of vars:”$4
運行test1: ./test1.sh 1 2 3 4
結果會是多少呢?歡迎實驗。
局部變量:
在變量首次被賦值時加上local關鍵字,可以申明一個局部變量。
例:test2.sh
#!/bin/bash
hello=”var1”
echo $hello
function func1{
local hello=”var2”
echo $hello
}
func1
echo $hello
運行test2.
輸出結果會是什麼呢?歡迎實驗。
本次的shell,基礎認知,就先寫到這裏。相信當你看到這的時候,對shell已經有了基本的印象。能閱讀簡單的shell腳本。再見。
下一篇:shell邏輯控制語法 https://blog.csdn.net/jiachanghui007/article/details/105776528