zoukankan      html  css  js  c++  java
  • Bash 脚本编程

    概述

    • Bash (GNU Bourne-Again Shell) 是许多Linux发行版的默认Shell。

    shell语法

    变量

    • 定义:your_name="hellohhy"
    • 使用:echo $your_name
    • 删除:unset your_name

    echo命令

    echo命令

    重定向

    • command > file:将输出重定向到 file。
    • command < file:将输入重定向到 file。
    • command >> file:将输出以追加的方式重定向到 file。
    • n > file:将文件描述符为 n 的文件重定向到 file。
    • n >> file:将文件描述符为 n 的文件以追加的方式重定向到 file。
    • n >& m:将输出文件 m 和 n 合并。
    • n <& m:将输入文件 m 和 n 合并。
    • 有人问道,g++编译结果怎么输出到文件。
    • 这里使用g++ test.cpp -o test 2> compile.txt来将其输出到文件。

    管道

    • 这是一个或多个命令的序列,用字符|分隔。
    • 一个完整的管道格式是这样的:
    [time [-p]] [ ! ] command [ | command2 ... ]
    
    • time单独执行某一条命令非常容易理解,统计这个命令运行的时间,但管道这种多个命令的组合,他统计的是某一个命令的时间还是管道所有命令的时间呢?如果保留字 time 作为管道前缀,管道中止后将给出执行管道耗费的用户和系统时间。

    • 如果保留字!作为管道前缀,管道的退出状态将是最后一个命令的退出状态的逻辑非值。 否则,管道的退出状态就是最后一个命令的。 shell 在返回退出状态值之前,等待管道中的所有命令返回。

    • 举一常见例子,比如查找名为firefox的进程:

    ps -A | grep firefox
    

    for 语句

    for循环的格式为

    for name [ in word ] ;
    do
    	list ;
    done
    

    其中循环格式可以为

    • {1..100..2}: 1到100增量为2
    • {a..z}: a到z的字母
    • seq 1 2 100: 1到100增量为2

    或者可以使用类似c++的语法,

    for (( i = 1 ; i <= n ; i++ )) ;
    do
        list ;
    done
    

    while 语句

    while循环的格式为

    cnt=0
    while [ $cnt -lt 10]
    do
        echo "$cnt"
        let cnt+=1
    done
    

    其中,-lt的意思为less than,即<=

    了解更多

  • 相关阅读:
    线程池中shutdown()和shutdownNow()方法的区别
    java.util.concurrent.TimeoutException: Idle timeout expired: 300000/300000 ms
    ConnectTimeout和ReadTimeout所代表的意义
    hive 查询注意问题
    java面试题之int和Integer的区别
    MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别
    MySQL数据库使用mysqldump导出数据详解
    C++宏定义详解
    OTL调用存储过程/函数及注意事项
    linux自定义开机启动服务和chkconfig使用方法
  • 原文地址:https://www.cnblogs.com/hellohhy/p/13215320.html
Copyright © 2011-2022 走看看