shell脚本杂记

来源:互联网 发布:中国网络电视直播下载 编辑:程序博客网 时间:2024/05/29 10:01

1、概念

      Shell脚本是利用shell的功能所写的一个程序“程序”,这个程序是使用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能,以达到我们所要的处理目的。

      简单记就是:

    Shell语法与命令 [ + 正则表达式 + 管道命令 + 数据流重定向 ]

2、脚本执行方式(source,sh script,./script)的区别

      下面先给出两幅图:

这里写图片描述

      从上图可以看出,不同的script执行方式会造成不一样的结果。尤其对bash的环境影响很大。
      当我们使用直接命令执行(不论是绝对路径/相对路径还是$PATH内),或者利用bash(或sh)来执行脚本时,该script都将会使用一个新的bash环境来执行脚本内的命令。如图a)所示,也就是说,使用这种方式执行脚本时,其实脚本是在子进程的bash内执行的。当子进程执行完成后,子进程内的各项变量或者操作将会结束而不会传回到父进程中。
      当我们使用source来执行脚本时,脚本是在父进程钟执行的。如图b)所示,也就是说该script与执行脚本的进程是同一个进程。因此,当脚本执行完成后,各项操作都会在原本的bash内继续生效。

3、误操作

      千万不要企图在脚本中写入sudo su语句以通过这种方式切换到root来执行需要root才能执行的特殊操作。
      如果真这么操作了的话会出现当执行完该条语句后,脚本就执行结束了,后面的脚本语句将不会得到执行。

参考:

      1、鸟哥的私房菜 基础篇

原创粉丝点击