zoukankan      html  css  js  c++  java
  • Bash的几个知识点

    1. 区别 builtin command, external command,bash script。
    用builtin command(hash、type、command),而不是which命令(external command)查看某个命令是安装了(跟PATH变量相关):
    hash foo >/dev/null 2>&  1 || echo "I need the command but it not exist"
    或者
    command -v foo >/dev/null 2>&  1 || echo "I need the command but it not exist"
    或者
    type foo >/dev/null 2>&  1 || echo "I need the command but it not exist"
     
    2. command执行过程
    2.1 builtin command会在bash内部执行,不需要fork子进程
    2.2 external command是普通的二进制文件,会fork子进程执行,共享父进程的环境变量。
    2.3 bash script:会起一个子进程(exec /bin/bash)解释脚本内容,递归执行内部的external command和bash script。用ps xjf可以查看。
    help 命令可以查看所有的builtin command
     
    3. A | B
    管道会起2个进程,父子进程通过匿名管道进行通信。
     
    4. 子shell
    ( ) 中的指令会在一个子 shell 中执行,命令执行结果不影响当前 shell。
    a=hello; echo $a |read var; echo $var
     VS
    a=hello; echo $a | (read var; echo $var)
     
    5. 优化bash性能几点心得
    5.1)少用管道,多用文件作为命令参数。一般的命令都是接受标准输入到标准输出,并介绍文件作为参数的。
    5.2)少用管道,多用here文档。read var <<< $(echo "hi"); echo $var   
    5.3)少用外部命令,多用builtin command
     
    6. 容易混淆的点
    6.1)test []  [[]] (())效率是一样的,都是builtin command。可以用help命令查看。
  • 相关阅读:
    HIFU控制器的显示板
    风扇控制板
    直流源控制板
    HIFU的心脏
    强劲的全桥驱动
    脑电模块
    另一个12导联心电模块
    数据处理,pandas方面遇到的问题
    6.13 django
    python 零基础学习之路-06 常用模块
  • 原文地址:https://www.cnblogs.com/Torstan/p/3981197.html
Copyright © 2011-2022 走看看