zoukankan      html  css  js  c++  java
  • 在shell下执行命令的方法

    在shell下执行命令的方法

    1. #!/bin/sh

    语法:在shell.sh的开头写入

    #!/bin/sh
    一般的shell脚本就是这种用法。这种方法调用脚本开头的shell执行命令,子shell执行的时候, 父shell暂停运行,等待子shell运行完后返回父shell。子shell从父shell继承环境变量.但是子shell中的环境变量不会带回父 shell

    2. exec

    语法:

    exec 命令
    

    exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本. 被调用的脚本与父脚本在同一个shell内执行。但是使用exec调用一个新脚本以后, 父脚本中exec行之后的内容就不会再执行了(相当于父shell被子shell删除)

    3. source或者

    语法:

    source /xxx/shell.sh
    . /xxx/shell.sh
    

    (1)与fork的区别是不新开一个子shell来执行被调用的脚本,而是在同一个shell中执行。所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用。
    (2)与 exec 的区别在于这个命令开启的子shell不会将父shell吞噬,执行完这个子shell以后还可以继续执行父shell下面的指令

    4. ()
    语法:

    ( 语句;语句;语句;…… )
    

    圆括号中命令列表的命令将会运行在一个子shell中。

    比如:

    $ (cd ..;ls -l)
    

    cd ..命令改变的是子Shell的PWD,而不会影响到交互式Shell。
    然而命令

    $ cd ..;ls -l
    

    则有不同的效果,cd ..命令是直接在交互式Shell下执行的,改变交互式Shell的PWD,然这种方式相当于执行Shell脚本:

    5.{}
    语法:

    {语句;语句;……}
    

    不会启动子shell

  • 相关阅读:
    addEventListener
    mac截屏
    SVG Use(转)
    关于 Content-Type:application/x-www-form-urlencoded 和 Content-Type:multipart/related(转)
    promise
    apt-get update 出现E: Could not get lock /var/lib/apt/lists/lock问题的解决
    js设计模式——6.模板方法模式与职责链模式
    js设计模式——5.状态模式
    js设计模式——4.迭代器模式
    js实现超简单sku组合算法
  • 原文地址:https://www.cnblogs.com/devilyouwei/p/12306337.html
Copyright © 2011-2022 走看看