Shell脚本编程入门(一) 分类: 学习笔记 linux ubuntu 2015-07-09 21:06 29人阅读 评论(0) 收藏
最近在学shell,记录一下。
if语句的使用:
1.判断两个参数大小
#!/bin/sh
#a test about if statement
a=10
b=20
if [ $a -eq $b ];then
echo "parameter a is equal to parameter b"
elif [ $a -le $b ];then
echo "parameter a is less than parameter b"
elif [ $a -gt $b ];then
echo "parameter a is greater than parameter b"
else
echo "i don't know the result!"
fi
2.执行脚本时动态传递参数
$1、$2、$3...分别代表接收到的参数
$0 表示程序的名称
$# 传递给程序的总的参数数目
$? 上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值
$* 传递给程序的所有参数组成的字符串
$@ 以"参数1" "参数2" ... 形式保存所有参数
$$ 本程序的(进程ID号)PID
$! 上一个命令的PID
脚本
#!/bin/sh
#a test about if statement
a=$1
b=$2
if [ $a -eq $b ];then
echo "parameter a is equal to parameter b"
elif [ $a -le $b ];then
echo "parameter a is less than parameter b"
elif [ $a -gt $b ];then
echo "parameter a is greater than parameter b"
else
echo "i don't know the result!"
fi
执行效果:
3.for循环的使用
#!/bin/bash
#a test about for and while statement
for i in {1..5}
do
echo "hello world"$i
done
注意:这里sh不支持这种写法,要用bash来运行
sh支持这种写法:
#!/bin/sh
#a test about for and while statement
for i in 1 2 3 4 5
do
echo "hello world"$i
done
4.在/root/test/test2文件夹中创建100文件夹,名称为test1~test100
#!/bin/bash
#create 100 folder in /root/test/test2
for i in {1..100}
do
`mkdir ./test2/test$i`
done
5.编写乘法表,根据输入参数来输出某个数的乘法表
#!/bin/bash
for((i=1;i<=$1;i++)){
for((j=1;j<=${i};j++)){
((ret=${i}*${j}))
echo -ne ${i}*${j}=$ret"\t"
}
echo
}
注意:参数中的-n表示输出后不换行,e表示支持转义字符
运行效果:
版权声明:本文为博主原创文章,未经博主允许不得转载。
Shell脚本编程入门(一) 分类: 学习笔记 linux ubuntu 2015-07-09 21:06 29人阅读 评论(0) 收藏的更多相关文章
- H - Solve this interesting problem 分类: 比赛 2015-07-29 21:06 15人阅读 评论(0) 收藏
Have you learned something about segment tree? If not, don't worry, I will explain it for you. Segm ...
- 【solr基础教程之二】索引 分类: H4_SOLR/LUCENCE 2014-07-18 21:06 3331人阅读 评论(0) 收藏
一.向Solr提交索引的方式 1.使用post.jar进行索引 (1)创建文档xml文件 <add> <doc> <field name="id"&g ...
- shell入门之函数应用 分类: 学习笔记 linux ubuntu 2015-07-10 21:48 77人阅读 评论(0) 收藏
最近在学习shell编程,文中若有错误的地方还望各位批评指正. 先来看一个简单的求和函数 #!/bin/bash #a test about function f_sum 7 8 function f ...
- ubuntu文件管理常用命令 分类: linux ubuntu 学习笔记 2015-07-02 16:57 29人阅读 评论(0) 收藏
1.关闭防火墙:ufw disable 2.以.开头的表示隐藏文件 3..和..分别代表当前目录以及当前目录的父目录 4.显示当前用户所在目录pwd 5.touch创建空文件 6.mkdir创建新目录 ...
- android开发之调试技巧 分类: android 学习笔记 2015-07-18 21:30 140人阅读 评论(0) 收藏
我们都知道,android的调试打了断点之后运行时要使用debug as->android application 但是这样的运行效率非常低,那么我们有没有快速的方法呢? 当然有. 我们打完断点 ...
- Python调用C可执行程序(subprocess) 分类: python 服务器搭建 C/C++ shell 2015-04-13 21:03 87人阅读 评论(0) 收藏
从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn.os.popen.popen2.commands. ...
- 树莓派做AP发射wifi(RTL8188CUS芯片) 分类: shell ubuntu Raspberry Pi 2014-11-29 01:25 822人阅读 评论(0) 收藏
最近在做一个项目,需要用树莓派作为AP发射wifi,对比cubieboard,树莓派的配置容易得多,而且支持也更多. 较为官方的介绍配置为无线热点的文章莫过于这一篇<RPI-Wireless-H ...
- C语言基础:函数(Function) 分类: iOS学习 c语言基础 2015-06-10 21:48 14人阅读 评论(0) 收藏
函数:一段具有某些特定功能的代码段. 使用函数的严格规定: 1.函数声明 2.函数定义 3.函数调用 函数声明:告知系统编译器该系统的函数名,函数参数,参数类型,参数个数,参数顺序等等,以便函数调用时 ...
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏
二进制:以0b开头,只有0和1两种数字.如0101 十进制:0~9十个数字表示.如25 十六进制:以0~9,A~F表示,以0X开头.如0X2B 十进制转换为X进制:连除倒取余 X进制转换为十进制:按权 ...
随机推荐
- 【SPOJ 2319】 BIGSEQ - Sequence (数位DP+高精度)
BIGSEQ - Sequence You are given the sequence of all K-digit binary numbers: 0, 1,..., 2K-1. You need ...
- "NetworkError: 500 Internal Server Error - http://develop.console.aliyun.sinopec.com/ots/ots_queryOtsList.action?state=0"
项目明明开始好好的,报的这个错,错误提示也很少,啥信息都没有,只是明白是服务器报了500,知道是服务器内部错误,但是却没法找不到问题所在.后来突然想到把下面报错的action直接在浏览器运行: htt ...
- 编写优质嵌入式C程序
前言:这是一年前我为公司内部写的一个文档,旨在向年轻的嵌入式软件工程师们介绍如何在裸机环境下编写优质嵌入式C程序.感觉是有一定的参考价值,所以拿出来分享,抛砖引玉. 转载请注明出处:http://bl ...
- 数据挖掘十大经典算法(5) 最大期望(EM)算法
在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Lat ...
- C/C++ ceil和floor函数
ceil 是“天花板" floor 是 “地板” 一个靠上取值,另一个靠下取值,如同天花板,地板. double ceil ( double x ); float ceil ( float ...
- mysql 区间锁 对于没有索引 非唯一索引 唯一索引 各种情况
The locks are normally next-key locks that also block inserts into the "gap" immediately b ...
- 【转】Eclipse 中设置JVM 内存 -- 不错
原文网址:http://www.xuebuyuan.com/569653.html java.lang.OutOfMemoryError: Java heap space 从上边的异常信息可以看到,J ...
- 基于WCF大型分布式系统的架构设计
在大型系统中应用中,一个架构设计较好的应用系统,其总体功能肯定是由很多个功能模块所组成的,而每一个功能模块所需要的数据对应到数据库中就是一个或多个表.而在架构设计中,各个功能模块相互之间的交互点 越统 ...
- [并发编程]使用线程安全队列和条件变量的notify来安排分步骤任务
// 方法1:直接构建N个THread来run foreach (i, size) { thread trd(&Instance::doWork, &inst); lstTrd.pus ...
- JSP九大内置对象详解
内置对象特点: 1. 由JSP规范提供,不用编写者实例化. 2. 通过Web容器实现和管理 3. 所有JSP页面均可使用 4. ...