Linux:shell脚本的介绍,创建与执行

        linux的shell脚本就是windows的bat脚本,也就是通常所说的批处理。更简洁地说,就是很多命令的结合体,就像编程一样。

        windows脚本的扩展名是.bat,而linux脚本的扩展名则是.sh

centos在编写shell脚本的文件最上边,需要加上#!/bin/sh(bash)这里表示的是使用sh(bash)解释器。自己写的语言需要与解释器相匹配。

sh和bash可以认为是一个东西,因为bash内部是连接着sh的,因此两个都可以写。

还有其他不同的解释器,如zsh、ash、chs、tcsh,这些一般用在其他版本,如ubantu等等。但是一般系统都会默认用该系统适合的解释器,有的时候shell脚本头部不加显示器也不会出错。但是最好都加上,就像c语言都得加mian函数一样。

 

写一段shell脚本文件:

首先需要创建应该shell脚本文件:

touch hello.sh

这样就创建好了

然后vim hello.sh打开这个文件。

输入:

ca44aff25b95417797cc7b7b6430f77b.png

 接下来就是执行了,执行命令的方式有三种:

①:

Linux:shell脚本的介绍,创建与执行_第1张图片

 这里是利用bash解释器,去解释这个shell脚本,这样bash就会帮我们执行这个shell脚本文件。

②:

Linux:shell脚本的介绍,创建与执行_第2张图片

 这里就是赋予可执行文件的权限,然后通过./去执行这个文件。

注意:可执行文件要执行,都得加个路径。否则会当做命令执行。

③:

3cb73fec8dbd4221b090f8303787b196.png

 可以通过source 文件名(可以直接写文件名source hello.sh这样也可以就如同直接bash一样)执行shell文件。

也可以通过. 文件名(中间是有空格的)执行shell文件。

这两个命令是一个意思,只是他们来源于不同解释器。被bash借鉴使用了。

那么是什么意思呢?

前两个执行方式其实是创建了一个子shell进程,这个子shell进程继承了父shell进程,然后由这个子shell进程一个一个执行shell文件内的命令,再带回父shell进程。但是子shell进程如果修改执行了修改环境变量等关键信息,这些父shell进程是不会响应的。

接下来就是source和.命令,这个两个命令是在父shell进程中直接执行shell文件。因此source和.通常会用来更新某些配置文件从而不用重启电脑,如:profile(环境变量文件)(解释一下,这些配置文件其实也是可执行文件,内部都是命令,如profile内部都是修改配置文件的命令export,这些命令只有被父shell进程执行后才会生效,在子shell进程执行是没有用的。)

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux,linux,运维,服务器)