shell linux教程,Shell入门基础知识
Shell 簡介
Shell作為命令語言,它交互式地解釋和執(zhí)行用戶輸入的命令;作為程序設計語言,它定義了各種變量和參數(shù),并提供了許多在高級語言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支。
常常作為批處理命令來使用,用來提高生產(chǎn)效率!
入門
下面是Shell的一段簡單入門程序,我們在Linux上面使用vi test.sh然后將下面的代碼打進去,運行sh test.sh 即可
#!/bin/bash
echo "Hello World !"
上面這段程序是輸出HelloWorld,其中#!/bin/bash 指定編譯器,必須在腳本的第一行,echo輸出信息,這里為輸出Hello World
如何運行這段程序呢, 第一步首先進入到該腳本所在的目錄,比如cd /root/shelltest ,運行命令sh test.sh 這樣就可以進行輸入了。
程序中的變量
定義全局變量
全局變量一直存在,不會因為切換shell終端或者退出登錄而消失,全局變量需要在 /root/.bush_profile 、/etc/bashrc、/etc/profile、/etc/profile.d文件中設置,設置的格式為export name=value
在/etc/profile中定義完成后,需要重新加載配置文件 source /etc/profile
其中在/etc/profile.d設置shell腳本可以在啟動shelle客戶端的時候就執(zhí)行這個腳本,這個文件夾中存儲的都為腳本。
創(chuàng)建腳本內(nèi)容如下
則新打開客戶端的時候則會執(zhí)行這個腳本,輸出對應的內(nèi)容。
定義局部變量, 局部變量在退出Shell客戶端時會失效
單引號雙引號的區(qū)別
單引號:原樣輸出
雙引號:如果里面有變量,會輸出變量
沒有引號:輸出變量
傳遞的參數(shù)
可以在調(diào)用腳本的時候給腳本傳遞參數(shù),腳本內(nèi)使用$1 $2 ...... 接受傳遞的參數(shù),當參數(shù)超過9的時候,需要用花括號括起來 ${10}
特殊的調(diào)用參數(shù):
$0:返回Shell文件名稱
$$:當前腳本的PID
$#:傳遞的所有參數(shù)
$@:程序中的所有參數(shù),這是將參數(shù)傳遞給其他程序的最佳方式。
$! :執(zhí)行的上一個命令的PID
$?:上一次指令的返回值
$_:此命令前面的最后一個參數(shù)
$* :獲取所有的參數(shù)
不同腳本之間訪問變量
使用sh命令啟動的腳本,則在腳本結(jié)束其內(nèi)部的屬性都會消失,其他的腳本不能訪問其內(nèi)部的屬性。
使用source 命令啟動腳本,則在腳本結(jié)束后其屬性不會失效,同時其他的腳本也能訪問到。
取消變量
使用unset可以取消變量,這個變量包括環(huán)境變量和局部變量
數(shù)組
數(shù)組中可以存放多個值。Bash Shell 只支持一維數(shù)組(不支持多維數(shù)組),初始化時不需要定義數(shù)組大小(與 PHP 類似),數(shù)組下標從0開始。
定義數(shù)組
array=(value1 value2 value3)
array_name[0]=value0
讀取數(shù)組
${array_name[index]}
獲取數(shù)組中全部的元素
${my_array[@]}
獲取數(shù)組的長度
${#my_array[*]}
流程控制
if
如果else語句中沒有執(zhí)行語句,不可以寫
if condition
then
command1
command2
...
commandN
fi
------------------
if condition
then
command1
command2
...
commandN
else
command
fi
------------
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
for
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
while
while condition
do
command
done
until
類似do-while循環(huán),在最后判斷條件,最少執(zhí)行一次
until condition
do
command
done
case
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
函數(shù)
demoFun(){ // 定義
echo "這是我的第一個 shell 函數(shù)!"
}
echo "-----函數(shù)開始執(zhí)行-----"
demoFun // 調(diào)用,如果需要傳遞參數(shù)直接在后面跟就好 demoFun 1 2 3
echo "-----函數(shù)執(zhí)行完畢-----"
運算符
expr 是一款表達式計算工具,使用它能完成表達式的求值操作。
expr 2 + 2 使用方法 , 需要注意的為1.表達式和運算符之間要有空格 2. 需要用``引起來
關系運算符
使用方法:
if [ $a -eq $b ]
then
echo "$a -eq $b : a 等于 b"
else
echo "$a -eq $b: a 不等于 b"
fi
布爾運算符
使用方法
if [ $a -lt 100 -a $b -gt 15 ]
then
echo "$a 小于 100 且 $b 大于 15 : 返回 true"
else
echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
邏輯運算符
字符串運算符
文件測試運算符
總結(jié)
以上是生活随笔為你收集整理的shell linux教程,Shell入门基础知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql创建table w3c_MyS
- 下一篇: hive sqoop 分区导入_利用oo