经过前两天的学习,关于shell的基础算是知道的一般般啦,最起码不算是小白了(纯属意淫).今天就来点干货哈.   首先是运行shell脚本时的参数传递.脚本内获取参数的格式为$n.n代表了一个数字,例如1,就是脚本执行的第一个参数,2,就是脚本执行的第二个参数,以此类推哈.举个栗子($0是执行的文件名称): #!/bin/bash echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1";…
既然是基础篇那肯定是需要对shell的各种需要注意的基本点进行说明了.接下来就是show time...    shell呢,是一个用C语言编写的应用程序,是用户使用linux的桥梁.所以呢,他既是一种命令语言,同时呢还是一种程序设计语言.shell脚本(shell script),是一种为shell编写的脚本程序.业界所说的shell通常都是指shell脚本,但是各位看官要知道的是,shell和shell script是两个不同的概念.由于习惯的原因,简介起见,本文出现的“shell编程”都是…
    和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); } else { // 不做任何事情 }     在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else.我们来看下在shell中,if 语句语法格式: if condition then command1 command2 ... commandN fi     写成一行…
在shell中还有一个输出的命令,那就是printf了.它模仿的是C程序库(library)里的printf()程序,是由POSIX标准所定义,所以嘞,使用printf脚本比echo移植性要好一点,它使用引用文本或空格分隔的参数,外面可以在printf使用格式化字符串,还可以制定字符串的宽度.左右对齐方式等,默认printf不会像echo自动添加换行符,但可以手动添加\n.以上就是官方解释,接下来,记录一下它的语法格式: printf format-string [arguments...]  …
上篇博客已经分析重温了shell的运行方式以及其中的变量还有字符串,之后按照套路就是数组方面了,废话不多说,直接进入正题哈.(小白笔记,各位看官勿喷...)     bash shell呢,支持一位数组,不支持多维数组,并且没有限定数组的大小,类似于C语言,元素的下标由0开始编号,下表可以是整数或者算术表达式,其值应大于或者等于0,在shell中用括号来表示数组,数组中的元素用空格来分割开来.定义数组的一般形式为: 数组名=(值1 值2 ... 值n)     例如: array_name=(v…
    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.shell中函数的定义格式如下: [ function ] funname [()] { action; [return int;] }     参数说明如下: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. return后跟数值n(0-255     下面的例子定义了一个函…
    大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端.重定向命令列表如下: 命令 说明 command > file 将输出重定向到 file. command < file 将输入重定向到 file. command >> file 将输出以追加的方式重定向到 file. n > file 将文件…
    和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件.Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空格 或 source filename     接下来,咱们来创建两个 shell 脚本文件.test1.sh 代码如下: #!/bin/bash url="http://www.luyaran.com"     test2.sh 代码如下: #!/bin/bash # url:ww…
前几天分享了shell字符串操作,数组操作等,接下来回归到项目,进行数据库操作.按照一般情况来说,shell连接数据库基本上都是DB使用的,因为需要运行大量的sql啊什么的,所以都会封装到shell中来进行操作.话不多说,给大家看一个实例,基本上就差不多完事了: #!/bin/bash mysql -uroot -proot <<EOF show databases; use super; insert into chains(name) values("renyuz");…
[转]Shell编程基础篇-下 1.1 条件表达式 1.1.1 文件判断 常用文件测试操作符 常用文件测试操作符 说明 -d文件,d的全拼为directory 文件存在且为目录则为真,即测试表达式成立 -f文件,f的全拼为file 文件存在且为普通文件则为真,即测试表达式成立 -e文件,e的全拼为exist 文件存在则为真,即测试表达式成立.注意区别于“-f”,-e不辨别是目录还是文件 -r文件,r的全拼为read 文件存在且可读则为真,即测试表达式成立 -s文件,s的全拼为size 文件存在且…