• Shell脚本(二)


    管道

    管道主要是将两个应用程序连接在一起,将第一个应用程序的输出作为第二个应用程序的输入。

    管道符是 |,例如:

    ps | cat
    ls -l | more 
    
    • 1
    • 2

    它将前一个命令执行的结果传递给后面的命令。使用管道符时,会为管道符前后的命令创建子进程,如

    cd /bin | ls 
    
    • 1

    会发现当前进程的目录并没有因为执行 cd /bin 而改变。

    重定向

    一个进程在运行时,默认会打开标准输入(0)、标准输出(1)、错误输出(2)这三个文件描述符。

    • 输入重定向符号 <````read var < /path/to/a/file ```* 输出重定向符号 >>>2>&>````echo 123 > /path/to/a/fileecho 123 >> /path/to/a/fileecho 123 2> /path/to/a/fileecho 123 &> /path/to/a/file 上例中,使用 `>` 和 `>>` 都会将内容写到文件中。对于 `>` ,会先将原文件中的内容清空,然后再将内容写进去。`>>` 则会保持原文件中的内容不变,在原文件内容的下一行进行追加。`2>` 是对文件描述符2进行操作,也叫做错误重定向。`&>` 输入的内容不管是正确的、还是错误的,都写到指定的文件中,上例是 `/path/to/a/file`。* 输入和输出重定向组合使用一般在 shell 中产生一个新文件时,会组合使用输入、输出重定向。#!/bin/bashcat > /path/to/a/file << EOFecho "hello world"EOF ```变量
      ==

    变量的定义

    变量名的命名规则

    • 只能包括字母、数字、下划线
    • 但不能以数字开头

    变量的赋值

    为变量赋值的过程,称为变量替换。

    Shell 中的变量是不区分类型的,所以 Shell 也叫做弱类型语言。

    • 变量名=变量值需要注意,等号的左侧、右侧是没有空格的。a=123 * 使用 let 为变量赋值let 可以让等号后的数值进行计算let a=10+20 * 将命令赋值给变量将命令赋值给变量的场景用的不多,大多数情况下,是将命令执行的结果赋值给某一个变量,就是下述的列举的场景。l=ls * 将命令结果赋值给变量,使用 $() 或者 ``l=$(ls -l) l=`ls -l` * 变量值有空格等特殊字符可以包含在 “” 或 ‘’ 中l="hello world"
  • 相关阅读:
    超越视觉极限:深度学习图像超分辨率算法清单【第二部分】
    Python中四个不常见的小技巧
    Hive 中级练习题(40题 待更新)
    springboot全局设置LocalDateTime的格式解析
    世界前沿技术发展报告2023《世界航空技术发展报告》(四)无人机技术
    linux安装部署flink1.17
    错题汇总14
    C. Add One--Divide by Zero 2021 and Codeforces Round #714 (Div. 2)
    【数据结构】图-图的连通性_Tarjan 算法(动态图解、c++、Java)
    oracle报错 ORA-02290: 违反检查约束条件问题
  • 原文地址:https://blog.csdn.net/web2022050902/article/details/126390641