shell简介:sh命令就是shell,而我们知道shell的作用是什么?shell就是用来解释linux命令的,我们输入命令,指示linux帮我们做什么,而linux本身是看不懂我们输入的命令的,它只认识01,而事实显然不是如此, 那么在用户和linux之间必然有个桥梁起到了转换的作用,这里的桥梁就是shell。shell有很多种,常见的如:Bourne shell (sh)、C shell (csh) 和 Korn shell (ksh)。
Bourne shell 是 UNIX 最初使用的 shell,简称sh。
Linux 操作系统缺省的 shell 是Bourne Again shell,一看什么区别?多了个Again,即简称 bash。但是有的同学可能会问,我平常在linux用到的sh命令或者在shell脚本第一行写的“#!/bin/sh”都是指的Bourne shell吗,不是的。为什么呢?
看到了吧,linux中默认把/bin/sh 指向了/bin/bash,所以我们平常用的就是/bin/bash。至于sh和bash什么区别,顾名思义的来解释,多了个Again嘛,其实事实也是如此,bash扩展了sh,并继承吸收了csh和ksh的优点,知道这么多就够了。
说了那么多,来看看sh命令吧。
格式 :sh [选项] 命令字符串或者shell脚本
常见选项:
-c:command后面跟一个字符串,这个字符串可以是我们平常执行的任何命令,有参数选项时一定要用引号括起来
-x:后面跟shell脚本,可以详细的显示shell脚本的执行信息
看下面的例子,sh -c "ls -l"等价于 ls -l:
比如,现在我有个job.sh,实现的功能是每个一秒钟输出一句话,共输出十次,内容如下:
i=0
while[KaTeX parse error: Can't use function '\]' in math mode at position 7: i-lt10\̲]̲ do echo"现在i的值是…i
i=
(
(
((
((i+1))
sleep1
done
当我执行命令“sh -x job.sh”来调试执行的时候输出什么信息呢?如下:
+i=0
+‘[‘0-lt10’]’
+echoKaTeX parse error: Undefined control sequence: \[ at position 48: …+i=1 +sleep1 +'\̲[̲'1-lt10'\]' +ec…’??°??¨i???ˉ???1’
现在i的值是:1文章来源:https://www.toymoban.com/news/detail-483268.html
我这里没有全部粘贴过来,下面都是一样的了,我就不粘贴了,以"+"开头的就是调试的详细信息了,通过给sh命令知道-x选项,可以方便我们排查错误信息。文章来源地址https://www.toymoban.com/news/detail-483268.html
到了这里,关于linux命令之sh的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!