看懂脚本文件即可

知识点:

Shell概述

Shell变量

Shell中的特殊字符

参数置换变量

控制结构

  1. 何为shell

    Shell就是unix提供给用户的使用界面,处于内核和应用程序之间,他是一个解释性语言,也是

    一种程序设计语言,也有自己的控制结构。

Bash 比较普遍,包含 csh,ksh特色。

Solaris默认shell 是sh,不过我们切换到bash来写脚本。

Shell放在文件里面就变成了shell script 叫做shell脚本。

指定一个shell去执行这个文件也可以。

Bash ls.sh

一般采用第三种方式,将文件设为可执行。

Shell变量

变量就是一个容器,传递数据的方式。我们分临时变量与全局变量。

临时变量:在shell程序中定义的变量,全局变量就是环境变量,其值不随shell脚本的执行结束而消失。

在变量前面加上 前缀 $ .

赋值技巧:不能带空格,变量可以是数字也可以是目录,文件等。 或者说是字符串。是大括号不是小括号。

Echo命令

一般对于输出格式的控制我们需要用到 \b \c \f 换页 \n 换行 \r 回车 \t 制表符 \v 垂直制表符

环境变量

是shell本身定义的变量,又称为系统变量。

MAIL SHELL DEITOR

export命令

export命令有转出作用,相当于设置完全局变量后,要让其对其他进程有效。所有需要输出。

环境变量PATH

决定了寻找shell命令和其他程序的途径,一般把常用 命令放在最前面。这个是影响shell程序效率之一。

预定义的特殊变量:

$* 位置参数 $# 参数个数 $$ 当前进程的pid

$! 最后一个进程的pid $? 最后一条命令的退出状态 $@ 与第一个有点像。

位置 参数:

当位置参数超过9,怎么办?需要移动位置参数。Shift表示向左移动。

Shift移动的位数和个数有关,一般是整数倍,假如剩下的个数不足移动的位数,则剩下的无法移动。

小脚本:第一句是程序会按照 bash里面的shell指令执行, -ne 表示不等于0;

$# 表示统计位置参数的个数,下面是6个位置参数,一个命令。

输入输出命令


键盘等都是标准输入,我们可以理解为输入流。

对于下面的 %s,其实可以改为 $x

Shell中的特殊字符

通配符:* 任意字符 ? 一个字符 [ ] 匹配多个字符 \ 转义字符

引号: 双引号 、 单引号、倒引号

记住:倒引号 优先执行,当然我们也可以用 -exec 或者 |xargs 实现。

重定向符 > < >>

选择语句

注意语法。下面的;; 不可以少。不然会出错。

While语句

Until 语句

For 语句

对于程序中的 while条件,必须要有两个 小括号,不然会报错。

在shell程序中,变量可以不用先定义后使用,可以直接使用。

当下面的程序中,user 登录,才会结束,不然一直处于循环状态。


其参数可以是 值表、文件正则表达式、位置参数



注意区别下面{ }的作用。以及let 表达式的使用 。在shell程序中没有;分号。

 

流程控制语句



 

函数

函数名 ()

{

函数体

}

最新文章

  1. width:100%;与width:auto;的区别
  2. Unity3D 之 iTween 相关
  3. C语言简易文法(无左递归)
  4. Failed to resolve: junit:junit:4.12
  5. python中的binascii
  6. linux shell 参数传递
  7. C# 必应代码搜索
  8. View.VISIBLE、INVISIBLE、GONE的区别
  9. mongodb操作记录
  10. 水平居中的两种方法margin text-align
  11. 11gR2RAC环境DBCA创建一个数据库错误ORA-15055 ORA-15001
  12. 规范 : angular 组合 jquery plugin
  13. callLater
  14. 027 storm面试小题
  15. 解决Xcode8模拟器无法删除应用的问题
  16. Linux内存管理 (10)缺页中断处理【转】
  17. android UI:Fragment碎片
  18. CAN总线错误分析与解决
  19. WD与循环 组合数学
  20. 题解——洛谷P2827 NOIP提高组 2016 蚯蚓

热门文章

  1. 【bzoj3073】[Pa2011]Journeys 线段树优化建图+堆优化Dijkstra
  2. Codeforces 903E Swapping Characters
  3. 基于Redis Sentinel的Redis集群(主从&amp;Sharding)高可用方案
  4. bzoj 2819 Nim dfn序+树状数组维护区间异或值
  5. Linux System Programming 学习笔记(六) 进程调度
  6. APUE 学习笔记(五) 进程环境
  7. Pushlets的初始化陷阱
  8. Sequelize的增删改查
  9. Vijos 1323: 化工厂装箱员
  10. (41)C#异步编程