Shell编程基础

  • shall编程第一行
    第一行制定了执行该脚本所用的语言
#!/bin/bash
  • 定义变量
    • 等号两边不能有空格
    • 单引号表示字符串,双引号表示特殊含义
    • 变量可以用双引号引起来,主要是为了区分变量的边界
#!/bin/bash
name='xul_test'
echo $name
  • 基本的重定向

    • 输出
      将标准输出,输出到当前文件夹下的test.t文件
ls /usr/local > ./test.t    //覆盖写
ls /usr/local >> ./test.t  //已追加的形式输出
  • 输入
    将标准输入改为从文件输入
  • 管道
ls /usr/local | grep bin
// -i 忽略大小写是
ls /usr/local | grep BIN
// -V 显示不匹配的行
ls /usr/local | grep -v bin
//-n 列出目标所在的行号
ls /usr/local | grep -n bin
//-c 列出匹配所在的总行数
ls /usr/local | grep -c bin

shell中的特殊字符

  • shell 中的通配符:
    *: 代表 0 个或者多个任意字符
    ?: 代表一定有一个的任意字符
    []: 代表一定有一个在括号内的字符(非任意字符)。例如[abcd]代表一定有一个字符,可能是 abcd 这四个选项的任意一个。
    [-]:若邮件韩在括号内时,代表在编码顺序内的所有自负。例如:[0-9]代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的。
    [^]: 若括号内的第一个字符为指数字符(^),那表示反向选择,例如:[^abc]代表一定有一个字符,只要是非 abc 的其他字符就可以。

  • shell中的特殊字符:
    #:注释字符
    **:将特殊字符或者通配符还原成一般字符
    |:管道符,分割两个管线命令的界定
    ;:连续命令下达分隔符
    ~:用户的家目录
    $:放在变量前面,正确使用变量
    &:工作控制,将命令编程背景下工作
    !:非(!)的意思,逻辑运算符
    >,>>:输出重定向,分别是覆盖和追加
    <,<<:输入重定向
    ‘’:单引号,不具有变量置换的功能
    “”:双引号,具有变量置换的功能
    ():在中间的为子 shell 的起始与结束
    {}:在中间为命令块的组合

  • shell 中正则表达式的控制字符
    ^:匹配行首位置
    $:匹配行尾位置
    .:匹配任意祖父
    :对之前的匹配整体或字符匹配任意次(包括 0 次)
    \?:对\?之前的匹配整体或字符匹配 0 次或 1 次
    {n}: 对 \ { 之前的匹配整体或字符匹配 n 次
    {m,}: 对 \ { 之前的匹配整体或字符匹配至少 m 次
    {m,n}: 对 \ { 之前的匹配整体或字符匹配 m 到 n 次
    [abcdef]: 对单字符而言匹配[]中的字符
    [a-z]: 对单字符而言,匹配任意一个小写字母
    [^a-z]:不匹配括号中的内容

发布了33 篇原创文章 · 获赞 4 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章