zoukankan      html  css  js  c++  java
  • 『SHELL』SHELL脚本执行方式

    Shell脚本的执行方式:

    注明:wd代表“脚本保存的目录”

      
    1.fork
    语法:/wd/shell.sh
    fork是最普通的, 就是直接在脚本里面用/wd/shell.sh来调用shell.sh这个脚本.运行的时候开一个子shell执行调用的脚本,子shell执行的时候, 父shell还在。子shell执行完毕后返回父shell。子shell从父shell继承环境变量.但是子shell中的环境变量不会带回父 shell

    2.exec
    语法: exec /wd/shell.sh
    exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本. 被调用的脚本与父脚本在同一个shell内执行。但是使用exec调用一个新脚本以后, 父脚本中exec行之后的内容就不会再执行了。这是exec和source的区别。

    3.source
    语法:source /wd/shell.sh
    与fork的区别是不新开一个子shell来执行被调用的脚本,而是在同一个shell中执行。所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用。

    4.()
    语法:( 语句;语句;语句;…… )
    圆括号中命令列表的命令将会运行在一个子shell中。

    比如:
    $ (cd ..;ls -l)
    cd ..命令改变的是子Shell的PWD,而不会影响到交互式Shell。
    然而命令
    $ cd ..;ls -l
    则有不同的效果,cd ..命令是直接在交互式Shell下执行的,改变交互式Shell的PWD,然
    而这种方式相当于这样执行Shell脚本:
    $ source ./script.sh
    或者
    $ . ./script.sh

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


    source命令、.命令
    语法: . filename [arguments]
        source filename [arguments]
    作用:
    当在命令 行中调用的时候, 这个命令将会执行一个脚本. 当在脚本中调用的时候, source file-name 将会加载file-name文件, 或者 . (点命令)一个文件将会在脚本中引入代码, 并将这些代码附加到脚本中(与C语言中的#include指令效果相同). 最终的结果就像是在使用"source"的行上插入了相应文件的内容.
    在多个脚本需要引用相同的数据, 或者需要使用函数库的情况下, 这个命令非常有用.

    5.{}
    {语句;语句;……}不会启动子SHELL。

  • 相关阅读:
    向IPython Notebook中导入.py文件
    python--时间日期
    python--条件和循环
    python--输入输出
    python--字符串
    python--内置函数
    python--异常
    python--模块
    python--数据结构
    pybrain
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2092862.html
Copyright © 2011-2022 走看看