Solaris shell脚本学习
看懂脚本文件即可
知识点:
Shell概述
Shell变量
Shell中的特殊字符
参数置换变量
控制结构
- 何为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脚本学习的更多相关文章
- 笔记——shell脚本学习指南
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...
- Shell 脚本学习资料搜集
Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...
- 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式
正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...
- 转 shell脚本学习指南
shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...
- Shell脚本学习 - 运算符
继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...
- shell脚本学习总结02--数组
bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...
- Shell脚本学习指南笔记
Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...
- shell脚本学习之6小时搞定(1)
shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...
- shell脚本学习心得
近来主要捣鼓ubuntu,大多数项目中都用到了sh脚本作为启动脚本等,以前只是大概明白如何使用,今天需要自己修改并运行脚本就碰到了很多问题,所以决定静下心来学习一下shell脚本,学习了几个小时,现将 ...
随机推荐
- Jupyter Notebook与Jupyterhub的安装与配置
Jupyter Notebook是一个很好用的交互环境,Jupyterhub则在此基础上实现了多用户的管理.最近配置这个环境的时候也遇到了一些坑,想想自己疯狂百度的过程,在此把自己的完整安装配置流程记 ...
- poj1006 中国剩余定理&&中国剩余定理解析
poj 1006 题的思路不是很难的,可以转化数学式: 现设 num 是下一个相同日子距离开始的天数 p,e,i,d 如题中所设! 那么就可以得到三个式子:( num + d ) % 23 == p: ...
- JDBC 学习笔记(四)—— JDBC 加载数据库驱动,获取数据库连接
1. 加载数据库驱动 通常来说,JDBC 使用 Class 类的 forName() 静态方法来加载驱动,需要输入数据库驱动代表的字符串. 例如: 加载 MySQL 驱动: Class.forName ...
- hdu6034[模拟] 2017多校1
/*hdu6034[模拟] 2017多校1*/ //暴力模拟26个26进制数即可, 要注意进位 #include<bits/stdc++.h> using namespace std; t ...
- gcd-模板+最小公倍数
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int G ...
- cf- 297 < a >--字符串操作技巧
A. Vitaliy and Pie time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- POJ #1025 Department
模拟题. 这题第一个障碍是现在少见的循环电梯 ('pater-noster' elevator) "The building has `pater-noster' elevator, i.e ...
- APUE 学习笔记(四) 标准I/O库
1.流与FILE对象 unix I/O系统调用都是针对文件描述符的 标准C的I/O函数都是针对流(文件指针)的,我们使用一个流与一个文件相关联 2.缓冲 标准I/O库提供缓冲的目的就是尽可能减少r ...
- 以iphone6plus 为标准单位是px的页面 在运行时转换为rem
在页面中引入以下代码,把样式中带px单位的样式放到本页面中的<style>标签中 /** * Created by Administrator on 2017-03-14. */ /*** ...
- java内部类的四大作用
一.定义 放在一个类的内部的类我们就叫内部类. 二. 作用 1.内部类可以很好的实现隐藏 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所 ...