Shell 腳本是什么?
一個(gè) Shell 腳本是一個(gè)文本文件,包含一個(gè)或多個(gè)命令。作為系統(tǒng)管理員,我們經(jīng)常需要使用多個(gè)命令來完成一項(xiàng)任務(wù),我們可以添加這些所有命令在一個(gè)文本文件(Shell 腳本)來完成這些日常工作任務(wù)。
什么是默認(rèn)登錄 Shell ?
在 Linux 操作系統(tǒng),"/bin/bash" 是默認(rèn)登錄 Shell,是在創(chuàng)建用戶時(shí)分配的。
使用 chsh 命令可以改變默認(rèn)的 Shell 。示例如下所示:
## chsh <用戶名> -s <新shell>
## chsh ThinkWon -s /bin/sh
在 Shell 腳本中,如何寫入注釋?
注釋可以用來描述一個(gè)腳本可以做什么和它是如何工作的。每一行注釋以 # 開頭。例子如下:
#!/bin/bash
## This is a command
echo “I am logged in as $USER”
語法級(jí)
可以在 Shell 腳本中使用哪些類型的變量?
在 Shell 腳本,我們可以使用兩種類型的變量:
系統(tǒng)定義變量
系統(tǒng)變量是由系統(tǒng)系統(tǒng)自己創(chuàng)建的。這些變量通常由大寫字母組成,可以通過 set 命令查看。
用戶定義變量
用戶變量由系統(tǒng)用戶來生成和定義,變量的值可以通過命令 "echo $<變量名>" 查看。
Shell腳本中 $? 標(biāo)記的用途是什么?
在寫一個(gè) Shell 腳本時(shí),如果你想要檢查前一命令是否執(zhí)行成功,在 if 條件中使用 $? 可以來檢查前一命令的結(jié)束狀態(tài)。
如果結(jié)束狀態(tài)是 0 ,說明前一個(gè)命令執(zhí)行成功。例如:
root@localhost:~## ls /usr/bin/shar
/usr/bin/shar
root@localhost:~## echo $?
如果結(jié)束狀態(tài)不是0,說明命令執(zhí)行失敗。例如:
root@localhost:~## ls /usr/bin/share
ls: cannot access /usr/bin/share: No such file or directory
root@localhost:~## echo $?
Bourne Shell(bash) 中有哪些特殊的變量?
下面的表列出了 Bourne Shell 為命令行設(shè)置的特殊變量。
內(nèi)建變量 解釋
$0 命令行中的腳本名字
$1 第一個(gè)命令行參數(shù)
$2 第二個(gè)命令行參數(shù)
….. …….
$9 第九個(gè)命令行參數(shù)
$## 命令行參數(shù)的數(shù)量
$* 所有命令行參數(shù),以空格隔開
如何取消變量或取消變量賦值?
unset 命令用于取消變量或取消變量賦值。語法如下所示:
## unset <變量名>
Shell 腳本中 if 語法如何嵌套?
if [ 條件 ]
then
命令1
命令2
…..
else
if [ 條件 ]
then
命令1
命令2
….
else
命令1
命令2
…..
在 Shell 腳本中如何比較兩個(gè)數(shù)字?
在 if-then 中使用測試命令( -gt 等)來比較兩個(gè)數(shù)字。例如:
#!/bin/bash
x=10
y=20
if [ $x -gt $y ]
then
echo “x is greater than y”
else
echo “y is greater than x”
Shell 腳本中 case 語句的語法?
基礎(chǔ)語法如下:
case 變量 in
值1)
命令1
命令2
…..
最后命令
!!
值2)
命令1
命令2
……
最后命令
Shell 腳本中 for 循環(huán)語法?
基礎(chǔ)語法如下:
for 變量 in 循環(huán)列表
do
命令1
命令2
….
最后命令
done
Shell 腳本中 while 循環(huán)語法?
如同 for 循環(huán),while 循環(huán)只要條件成立就重復(fù)它的命令塊。
不同于 for循環(huán),while 循環(huán)會(huì)不斷迭代,直到它的條件不為真。
基礎(chǔ)語法:
while [ 條件 ]
do
命令…
done
do-while 語句的基本格式?
do-while 語句類似于 while 語句,但檢查條件語句之前先執(zhí)行命令(LCTT 譯注:意即至少執(zhí)行一次。)。下面是用 do-while 語句的語法:
Shell 腳本中 break 命令的作用?
break 命令一個(gè)簡單的用途是退出執(zhí)行中的循環(huán)。我們可以在 while 和 until 循環(huán)中使用 break 命令跳出循環(huán)。
Shell 腳本中 continue 命令的作用?
continue 命令不同于 break 命令,它只跳出當(dāng)前循環(huán)的迭代,而不是整個(gè)循環(huán)。continue 命令很多時(shí)候是很有用的,例如錯(cuò)誤發(fā)生,但我們依然希望繼續(xù)執(zhí)行大循環(huán)的時(shí)候。
如何使腳本可執(zhí)行?
使用 chmod 命令來使腳本可執(zhí)行。例子如下:chmod a+x myscript.sh 。
#!/bin/bash 的作用?
#!/bin/bash 是 Shell 腳本的第一行,稱為釋伴(shebang)行。
這里 # 符號(hào)叫做 hash ,而 ! 叫做 bang。
它的意思是命令通過 /bin/bash 來執(zhí)行。
如何調(diào)試 Shell腳本?
使用 -x' 數(shù)(sh -x myscript.sh)可以調(diào)試 Shell腳本。
另一個(gè)種方法是使用 -nv 參數(shù)(sh -nv myscript.sh)。
如何將標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出同時(shí)重定向到同一位置?
方法一:2>&1 (如## ls /usr/share/doc > out.txt 2>&1 ) 。
方法二:&> (如## ls /usr/share/doc &> out.txt ) 。
在 Shell 腳本中,如何測試文件?
test 命令可以用來測試文件?;A(chǔ)用法如下表格:
Test 用法
-d 文件名 如果文件存在并且是目錄,返回true
-e 文件名 如果文件存在,返回true
-f 文件名 如果文件存在并且是普通文件,返回true
-r 文件名 如果文件存在并可讀,返回true
-s 文件名 如果文件存在并且不為空,返回true
-w 文件名 如果文件存在并可寫,返回true
-x 文件名 如果文件存在并可執(zhí)行,返回true
————————————————
2020年創(chuàng)新互聯(lián)年中促銷活動(dòng)
限購2臺(tái)特價(jià)
韓國服務(wù)器 美國站群服務(wù)器
CN2線路 優(yōu)選配置 首月半價(jià)
更有國內(nèi)高防服務(wù)器超值特價(jià)
100G-200G防御
年付更優(yōu)惠
數(shù)量有限 售完為止
歡迎在線客服
本文標(biāo)題:Shell的一些常識(shí)
標(biāo)題鏈接:http://aaarwkj.com/article0/hgoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、用戶體驗(yàn)、品牌網(wǎng)站制作、網(wǎng)站改版、網(wǎng)站維護(hù)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)