• 在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

  • 相关阅读:
    Flutter 路由管理
    SpringMVC 集成 MyBatis
    关于windows下安装mysql数据库出现中文乱码的问题
    md5.digest()与md5.hexdigest()之间的区别及转换
    MongoDB基础命令及操作
    redis相关操作&基本命令使用
    python中mysql主从同步配置的方法
    shell入门基础&常见命令及用法
    ORM总结
    多任务:进程、线程、协程总结及关系
  • 原文地址:https://www.cnblogs.com/devilyouwei/p/12306337.html
Copyright © 2020-2023  润新知