shell簡介:sh命令就是shell,而我們知道shell的作用是什么?shell就是用來解釋linux命令的,我們輸入命令,指示linux幫我們做什么,而linux本身是看不懂我們輸入的命令的,它只認(rèn)識01,而事實顯然不是如此, 那么在用戶和linux之間必然有個橋梁起到了轉(zhuǎn)換的作用,這里的橋梁就是shell。shell有很多種,常見的如:Bourne shell (sh)、C shell (csh) 和 Korn shell (ksh)。
Bourne shell 是 UNIX 最初使用的 shell,簡稱sh。
Linux 操作系統(tǒng)缺省的 shell 是Bourne Again shell,一看什么區(qū)別?多了個Again,即簡稱 bash。但是有的同學(xué)可能會問,我平常在linux用到的sh命令或者在shell腳本第一行寫的“#!/bin/sh”都是指的Bourne shell嗎,不是的。為什么呢?
看到了吧,linux中默認(rèn)把/bin/sh 指向了/bin/bash,所以我們平常用的就是/bin/bash。至于sh和bash什么區(qū)別,顧名思義的來解釋,多了個Again嘛,其實事實也是如此,bash擴(kuò)展了sh,并繼承吸收了csh和ksh的優(yōu)點,知道這么多就夠了。
說了那么多,來看看sh命令吧。
格式 :sh [選項] 命令字符串或者shell腳本
常見選項:
-c:command后面跟一個字符串,這個字符串可以是我們平常執(zhí)行的任何命令,有參數(shù)選項時一定要用引號括起來
-x:后面跟shell腳本,可以詳細(xì)的顯示shell腳本的執(zhí)行信息
看下面的例子,sh -c "ls -l"等價于 ls -l:
比如,現(xiàn)在我有個job.sh,實現(xiàn)的功能是每個一秒鐘輸出一句話,共輸出十次,內(nèi)容如下:
i=0
while[KaTeX parse error: Can't use function '\]' in math mode at position 7: i-lt10\?]? do echo"現(xiàn)在i的值是…i
i=
(
(
((
((i+1))
sleep1
done
當(dāng)我執(zhí)行命令“sh -x job.sh”來調(diào)試執(zhí)行的時候輸出什么信息呢?如下:
+i=0
+‘[‘0-lt10’]’
+echoKaTeX parse error: Undefined control sequence: \[ at position 48: …+i=1 +sleep1 +'\?[?'1-lt10'\]' +ec…’??°??¨i???ˉ???1’
現(xiàn)在i的值是:1文章來源:http://www.zghlxwxcb.cn/news/detail-483268.html
我這里沒有全部粘貼過來,下面都是一樣的了,我就不粘貼了,以"+"開頭的就是調(diào)試的詳細(xì)信息了,通過給sh命令知道-x選項,可以方便我們排查錯誤信息。文章來源地址http://www.zghlxwxcb.cn/news/detail-483268.html
到了這里,關(guān)于linux命令之sh的用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!