1,获取命令执行的结果,字符串拼接(脚本最常使用的功能)
 
cmd_result=$(date +%Y%b%d)        //使用变量获取命令执行的结果 或者 cmd_result=`date +%Y%b%d`   反引号
 
mysqldump -uroot -pfeng --all jiale>/root/jiale$cmd_result.sql    //执行字符串和变量拼接,也可以使用${cmd_result}

2.使用#来注释,以及脚本执行的方法
脚本的开头一般是
#!/bin/sh
因为脚本前两个字符一般是#!,系统会将这两个字符之后的字符作为执行脚本的命令解释器的绝对路径(也可以是其他脚本解释器的路径)
脚本执行的三个方法
(1)chmod  u+x  脚本名        //给脚本执行权
         ./脚本名
(2)bash  脚本名                     //直接使用shell启动命令一般比上面的方法要慢一些
         sh  脚本名
(3)使用bash内部命令source或“.”运行脚本
        source  脚本名
        . 脚本名               //“.”之后必须有一个空格

 
3,I/O重定向,管道(|)和后台运行
 
cmd1 > file1 将命令1 的结果输入到文件1中
cmd1 > >file1 将命令1 的结果追加到文件1中
cmd1 < file1 将文件1 的内容输出作为 命令 1执行
cmd1 << file1 将文件1 的内容追加到 命令 1
cmd1 2> file1 错误输出重定向,命令1执行的错误信息会输入给文件1
cmd1 &> file1 标准输出与错误输出重定向,标准输出和错误输出一起输入到文件1中,屏幕将无显示
 
命令1 |命令2|命令1
将命令1的结果,输出给命令2,作为命令2的输入,再将命令2的结果输出给命令3,作为命令3的输入
 
命令1 |&命令2|命令1
将命令1的标准结果和标准错误信息,输出给命令2,作为命令2的输入,再将命令2的结果输出给命令3,作为命令3的输入
 
在命令后加入&,可以让命令到后台运行
COMMAND &
# gcc   myproc.c&

4,命令执行顺序
分号,多个命令用分号隔开,最后一个回车后,命令按顺序执行
&&  连接连个命令,第一个命令执行成功后才能执行第二个命令 
||      连接连个命令,第一个命令执行失败后才能执行第二个命令 
 

5,shell通配符
?       表示任意单个字符
*       表示任意长度字符
[ ]     表示匹配[  ]给定字符集合的任意一个字符
{ }    表示将{ }中的字符串,以及前导和后继字符作为匹配条件

6,单引号,双引号,反引号
单引号 括起来的字符都会变成普通字符串
双引号 括起来的字符除 $ "  `  \  外都会变成普通字符串
反引号 括起来的字符串会被作为命令执行
 
 

declare [-afirx]  声明变量类型
-a    定义为数组
-f     定义为函数
-i     定义为整数
-r     定义为只读
-x     定义为通过环境输出比变量
 
declare -i    plaus=1+2+4*4-5
echo  plaus
 

 
test命令(如果不想使用tset可以使用“[ 表达式 ]”来代替,表达式前后有空格)
 
test  -e  file        测试文件是否存在,存在为真
test -d  file         测试文件是否存在且是目录,是则为真
test  -x  file        测试文件是否存在且可以执行,是则为真
test  -r  file        测试文件是否存在且为只读,是则为真
test  -w  file       测试文件是否存在且可写入,是则为真
 
test  -b  file       测试文件是否存在且为块设备,是则为真
test  -c   file       测试文件是否存在且为字符设备,是则为真
test  -s   file       测试文件是否存在且长度大于0,是则为真
test  -f   file       测试文件是否存在且是普通文件,是则为真
 
数值比较测试
-eq       等于
-ne       不等于
-gt        大于
-lt         小于
-ge       大于等于
-le        小于等于
 
字符串比较测试
-z     s1      如果字符串s1的长度是0,值为真
-n     s2     如果字符串s1的长度不为0,值为真
s1=s2       相等值为真
s1!=s2      不相等值为真
s1              如果字符串s1不是空串,值为真
 
 

控制结构
if  then  else  fi
 
echo "press y to continue"
read yn
if [ "$yn"="y" ] || [ "$yn"="Y"]; then echo "script is running"
else
echo "Stop"
fi
 
case  ......esac
 
echo "press you select "
read number
 
case  $number  in                       //如果没有read 交互式输入 ,直接输入使用$1   即 (case  $1  in   )
one)   echo   "you choice is one"
;;
 
tw0)     echo   "you choice is two"
;;
 
*)     echo   "Usage {one|two}"
exit 1
esac
 
for (( 条件1;条件2;条件3))
for var    in   var1   var2  var3
 
 
 
while[ 条件1 ] && { || }  [ 条件2 ]      当条件符合时就继续
until [ 条件1 ] && { || }  [ 条件2 ]       直到条件符合时才继续
 
函数
函数名() {
 
 
}
 

脚本调试
sh  [-nvx]   script.sh
-n   不执行脚本,查询脚本内容语法,错误则列出    sh -n   script.sh
-v   执行脚本之前先把脚本内容显示在屏幕上
-x   将用到的脚本内容显示在屏幕上
   
 
 
 
 
 
 
 
 
 
 
 
 

linux shell 编程的更多相关文章

  1. linux —— shell 编程(文本处理)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...

  2. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  3. linux shell编程总结

    linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...

  4. Linux Shell编程参考大全

    本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...

  5. Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||

    https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...

  6. linux shell 编程参考

    #!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...

  7. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

  8. linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行

    linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行 crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判 ...

  9. 一文学完Linux Shell编程,比书都好懂

    一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...

  10. 前端学习 linux —— shell 编程

    前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...

随机推荐

  1. Promise 使用心得

        this.testPromise=function(){         return new Promise(function(resolve,reject){             co ...

  2. 为Eclipse添加Java和Android SDK源代码

    1.添加jdk源码进入eclipse Ctrl + Click -->Attached Source 路径:D:\Program Files\Java\jdk1.8.0_45\src.zip 2 ...

  3. 让mingw gdb支持STL,并自动load .gdbinit

    环境要求:python (2.7版本可以,3.x没测过),mingw官方版(你可能已经有了),gdb2013-02-04(到这里https://code.google.com/p/qp-gcc/dow ...

  4. iTunes Connect突然登录不了的原因

    突然使用开发者账号登录不了iTunes Connect了,提示:Your Apple ID or password was entered incorrectly. 这是由于iTunes Connec ...

  5. ISO给UIImageView增加点击事件

    自己做了一个九宫格,里面的图标都是由多张图片重叠构成,然后包装成一个button来使用: 遇到的问题是如何给这个“button”增加点击事件? 解决思路1:网友提示在该“button”上增加一个真正的 ...

  6. java计算当前周开始日期&结束日期

    public static Date getFirstDayOfWeek(Date date) { Calendar c = new GregorianCalendar(); c.setFirstDa ...

  7. sass调试--页面看到sass文件而不是css文件问题

    在浏览器页面有时看到sass文件而不是css文件问题,其主要由于sass开启了source-map(调试)功能,问题如下图: sass调试 sass调试需要开启编译时输出调试信息和浏览器调试功能,两者 ...

  8. 数据可视化(6)--Google Charts实例

    上头给的关于jqplot的问题暂时解决了,继续google charts. google charts的实例很多,就以区域图(Geochart)为例~~ 区域图(Geochart)是一个国家.大陆或者 ...

  9. 在做Android开发的,如何去掉滚动view在尽头时的阴影效果

    不经意的在开发中,发现qq的侧滑几乎没有阴影效果,就是拉到边界没有时出现的效果:于是在网上找了下,发现很简单的设置 只要在xml布局文件的滚动或者侧滑控件中加入如下样式: android:overSc ...

  10. JS手动触发事件,转载

    1. createEvent(eventType)参数:eventType 共5种类型:    Events :包括所有的事件.           HTMLEvents:包括 'abort', 'b ...