看懂脚本文件即可

知识点:

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程序中没有;分号。

 

流程控制语句



 

函数

函数名 ()

{

函数体

}

Solaris shell脚本学习的更多相关文章

  1. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  2. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  3. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  4. 转 shell脚本学习指南

    shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...

  5. Shell脚本学习 - 运算符

    继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...

  6. shell脚本学习总结02--数组

    bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...

  7. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  8. shell脚本学习之6小时搞定(1)

    shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...

  9. shell脚本学习心得

    近来主要捣鼓ubuntu,大多数项目中都用到了sh脚本作为启动脚本等,以前只是大概明白如何使用,今天需要自己修改并运行脚本就碰到了很多问题,所以决定静下心来学习一下shell脚本,学习了几个小时,现将 ...

随机推荐

  1. [git 学习篇]git管理的是修改,并非文件

    你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git管理的 ...

  2. [笔记]Docker解决了什么问题?

    Docker的优势: 环境依赖问题 更轻量的虚拟化,节省了虚拟机的性能损耗 Docker应用场景: 程序分发,gitlab的安装很恶心吧,所以有人做了gitlab的image 部署发布,这点对运维的同 ...

  3. 【Vjudge】P558E A Simple Task(线段树暴力)

    题目链接 这题……太暴力了吧…… 开二十六棵线段树维护l到r字符i出现的次数,然后修改的时候暴力修改,输出的时候暴力输出……就过了…… 然后我还没想到…… qwq #include<cstdio ...

  4. Tarjan的强联通分量

    求强联通分量有很多种. <C++信息学奥赛一本通>  中讲过一个dfs求强联通分量的算法Kosdaraju,为了骗字数我就待会简单的说说.然而我们这篇文章的主体是Tarjan,所以我肯定说 ...

  5. NOJ——1508火烧赤壁2(并查集+启发式合并+逆序加边)

    [1508] 火烧赤壁2 时间限制: 1000 ms 内存限制: 65535 K 问题描述 上次出了一道火烧赤壁的题目给当时的新生,也就是你们的上一届学长们做,那么这次,我又想到了另一个想法. 上次的 ...

  6. 平面凸包Graham算法

    板题hdu1348Wall 平面凸包问题是计算几何中的一个经典问题 具体就是给出平面上的多个点,求一个最小的凸多边形,使得其包含所有的点 具体形象就类似平面上有若干柱子,一个人用绳子从外围将其紧紧缠绕 ...

  7. Python Base One

    //this is my first day to study python, in order to review, every day i will make notes (2016/7/31) ...

  8. java 时间戳与date转换

    1.时间戳转换为date long sjc=1442633777; SimpleDateFormat t = new SimpleDateFormat("yyyyMMddHHmmss&quo ...

  9. jquery中append、prepend, before和after方法的区别(一)

    原文:http://blog.csdn.net/woosido123/article/details/64439490 在 jquery中append() 与 prepend()是在元素内插入内容(该 ...

  10. docker的通俗理解

    自己买了个服务器,前不久搭建好的一个网站,想要再搞一个站点,无奈只能修改端口后,再部署另外一个站点.繁琐的配置运行环境,迁移网站,是否让你感觉到很繁琐?服务器不想用了,想搬迁到另外一台服务器去部署,先 ...