shell脚本

shell脚本程序:以文件形式存放批量的linux命令集合,该文件能够被shell释放执行。通常由一段linux命令、shell命令、控制语句以及注释语句构成。
shell脚本特点:
  • 第一行需指定用哪个程序来编译和执行脚本,如#!/bin/bash 或者#!/bin/sh
  • 通常shell脚本以.sh为后缀
shell脚本执行权限:
  • 有执行权限,可以./filename.sh
  • 无执行权限,可以sh filename.sh
变量与引用
定义变量
  • 定义变量时变量名不加美元符号
  • 注意等号两边不能有空格如:name="wujiadong"
  • 变量名不能以数字开头
  • export命令可以使变量用于子进程
  • 变量赋值时,若值中有空格,必须使用双引号括起来
使用变量
  • 使用一个定义过的变量,只要在变量名前加美元符号。
  • 显示变量:echo $name 或echo ${name}
  • 清除变量:unset name

实例1

test11.sh

 #!/bin/bash
v1="feigu"
export v2="wujiadong"  #export命令可以使变量用于子进程 echo "显示v1:$v1"
echo "显示v2:$v2" sh test12.sh

test12.sh

 #!/bin/sh
echo "引用变量v1:$v1"
echo "引用变量v2:$v2"

执行sh.test11.sh

aaarticlea/png;base64,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" alt="" />

控制结构
判断
test -e filename 表示是否存在
-e 是否存在 
-f 是否存在且为档案(file)
-d 是否存在且为目录(directory)
 
-r 是否存在且有可读权限
-w 是否存在且有可写权限
-x 是否存在且有可执行权限
 
两个数之间判断 :test n1 -eq n2
-eq 两数值相等(equal)
-ne 两数值不等(not equal)
-gt n1大于n2(greater than)
-lt n1小于n2(less than)
-ge n1大于等于n2(great than or equal)
-le n1小于n2(less than or equal)
 

判断字符串的数据

test -z string 判断字符串是否为0,string为空字符串,则为true
test -n string 判断字符串是否非为0,string为空字符串,则为false。注:-n可省略
test str1 = str2 判断str1是否等于str2,若相等,则回传true
test str1 != str2  判断str1是否不等于str2,若相等,则回传false

if else

if 条件
then 命令
fi 或者 if 条件
then 命令1
else 命令2
fi 或者 if 条件1
then 命令1
elif 条件2
then 命令2
else 命令3
fi 注意:这里elif是else if的缩写,但不支持else if的写法

linux基础(6)-shell编程的更多相关文章

  1. linux基础6-bash shell编程

    1. type [-ta] name 一般情况下,type命令被用于判断另外一个命令是否是内置命令,但是它实际上有更多的用法. 1.1.判断一个名字当前是否是alias.keyword.functio ...

  2. linux基础之Shell Script入门介绍

    本文介绍下,学习shell script编程的入门知识,通过几个入门实例,带领大家走进shell script的神圣殿堂,呵呵,有需要的朋友参考下. 本文转自:http://www.jbxue.com ...

  3. Linux学习之Shell编程基础

    转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来 ...

  4. Linux基础篇–shell脚本编程基础

    本章内容概要  编程基础  脚本基本格式  变量  运算  条件测试  配置用户环境 7.1 编程基础程序:指令+数据程序编程风格:   过程式:以指令为中心,数据服务于指令   对象式:以数据为中心 ...

  5. 基于Linux系统的Shell编程-基础篇

    1. Shell基础介绍 1.1 Shell编程的意义 为什么使用shell编程 节约时间 1.2 显示脚本执行过程 前面有+表示执行过的命令的 前面没有东西,表示输出到屏幕上的内容. [root@C ...

  6. Linux下的shell编程入门

    通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应.一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率.要达到这样的目的,通常我们利用shell程序或者 ...

  7. Linux与Unix shell编程指南(完整高清版).pdf

    找到一本很详细的Linux Shell脚本教程,其实里面不光讲了Shell脚本编程,还介绍了系统的各种命令 http://vdisk.weibo.com/s/yVBlEojGMQMpv 本书共分五部分 ...

  8. Linux下的Shell编程

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  9. Linux 与 unix shell编程指南——学习笔记

    第一章    文件安全与权限 文件访问方式:读,写,执行.     针对用户:文件属主,同组用户,其它用户.     文件权限位最前面的字符代表文件类型,常用的如         d 目录:l 符号链 ...

  10. linux下的Shell编程(3)shell里的流程控制

    if 语句 if 表达式如果条件命令组为真,则执行 then 后的部分.标准形式: if 判断命令,可以有很多个,真假取最后的返回值 then 如果前述为真做什么 [ # 方括号代表可选,别真打进去了 ...

随机推荐

  1. 排序算法 c实现

    c语言实现插入排序.冒泡排序.选择排序.快速排序.堆排序.归并排序.希尔排序示例,需要的朋友可以参考下     实现以下排序 插入排序O(n^2) 冒泡排序 O(n^2) 选择排序 O(n^2) 快速 ...

  2. Python成长之路(常用模块学习)

    Python 拥有很多很强大的模块 主要写一下常用的几个吧 大概就是这些内容了 模块介绍 time &datetime模块 random os sys shutil json & pi ...

  3. poj 3590(dp 置换)

    题目的意思是对于序列1,2,...,n.要你给出一种字典序最小的置换使得经过X次后变成最初状态,且要求最小的X最大. 通过理解置换的性质,问题可以等价于求x1,x2,..,xn 使得x1+x2+... ...

  4. 【BZOJ2721】[Violet 5]樱花 线性筛素数

    [BZOJ2721][Violet 5]樱花 Description Input Output Sample Input 2 Sample Output 3 HINT 题解:,所以就是求(n!)2的约 ...

  5. 清空javascript数组数据

    var arrayObj = new Array(); arrayObj.splice(0, arrayObj.length);//清空数组数据

  6. jQuery之获取select选中的值

    本来以为jQuery("#select1").val();是取得选中的值, 那么jQuery("#select1").text();就是取得的文本. 这是不正确 ...

  7. Java基础 - 流程控制语句

    package com.demo4; /* * 流程控制语句 * 流程控制语句分类: * 顺序结构 * 代码从上往下按照顺序执行 * * 选择结构 * if * if (关系表达式1) { * 语句体 ...

  8. hive批量执行sql命令及使用小技巧

    root@hadoop-senior hive-0.13.1]$ bin/hive -helpusage: hive -d, --define <key=value> Variable s ...

  9. node.js及node-inspector的调试方法

    1.先运行 $ node --debug-brk test.js 2.再在新的窗口运行: $ node-inspector 3.再打开Chrome浏览器输入node-inspector提示的地址,就会 ...

  10. 剑指offer 面试62题

    面试62题: 题目:圆圈中最后剩下的数字 题:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 解题思路:约瑟夫环问题,可 ...