zoukankan      html  css  js  c++  java
  • Shell执行脚本

    Shell作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行这一条,这种方式称为交互式,但还有另一种执行命令的方式称为批处理方式,用户事先写一个Shell脚本,Shell可以一次把这些命令执行完。

    如下例子:

    第一种执行方式:chmode+x script.sh

    执行过程:

    Shell会fork一个子进程并调用exec执行./script.sh这个程序,exec系统调用会把子进程代码段替换成./script.sh程序的代码段,exec有一种机制,如果要执行的是一个文本文件,并且第一行Shebang 指定了解释器,则用解释器程序的代码段替换当前进程,并且从解释器 的_start开始执行,而这个文本文件被当作命令行参数传给解释器

     第二种执行方式:

    shell执行过程:

    1. 交互Shell(bash)fork/exec一个子Shell(sh)用于执行脚本,父进程bash等待子进程sh终 止。
    2. sh读取脚本中的cd ..命令,调用相应的函数执行内建命令(不创建子进程,父进程运行),改变当前工作目录为上一级目 录
    3. sh读取脚本中的ls命令,fork/exec这个程序,列出当前工作目录下的文件,sh等待ls终止。
    4. ls终止后,sh继续执行,读到脚本文件末尾,sh终止。
    5. sh终止后,bash继续执行,打印提示符等待用户输入。

    两种方法执行Shell脚本的效果是相同的,cd ..命令改变的是子Shell的PWD,而不会影响到 交互式Shell。

    source ./script.sh或者. ./script.sh命令:

     source或者.命令是Shell的内建命令,这种方式也不会创建子Shell,而是直接在交互式Shell下逐行 执行脚本中的命令。

  • 相关阅读:
    Java中顺序、并行与并发
    Java设计模式之Iterator
    渗透基础流程思路丶技巧丶与总结
    阿里巴巴Java开发手册之并发处理注意事项
    Java中Thread方法启动线程
    IOCP之客户端及消息传递
    IOCP简单实现
    JAVA 递归线程池测试 ExecutorService / ForkJoinPool
    TCP与UDP的一些心得
    七.badboy检查点和参数化
  • 原文地址:https://www.cnblogs.com/Blog-day/p/My_Blog_Days-29.html
Copyright © 2011-2022 走看看