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. centos 7.0 下触发器乱码的解决

    [root@iZ62jhlmmZ ~]# uname -a Linux iZ62jhlmsymZ 3.10.0-123.13.2.el7.x86_64 #1 SMP Thu Dec 18 14:09: ...

  2. Windows 8.1 Enterprise 下 安装 Eclipse 官方中文包后无法输入任何内容

    最新文章:Virson's Blog 官方下载的Eclipse解压后运行,然后通过repository方式安装了中文语言包,按提示后重启,重启后不能进行任何输入,解决该问题的方法就是将eclipse. ...

  3. git delete repository

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

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

  5. 华为手机连不上adb解决方法

    1.关闭qq,豌豆荚等一连接usb自动侦测手机的程序... 2.安装hisuite软件,这个应该跟相应的版本有关,新版本最好要安装这个软件,否则也可能导致怎么都连接不上 3.打开usb调试功能 4.a ...

  6. 【PRML读书笔记-Chapter1-Introduction】1.2 Probability Theory

    一个例子: 两个盒子: 一个红色:2个苹果,6个橘子; 一个蓝色:3个苹果,1个橘子; 如下图: 现在假设随机选取1个盒子,从中.取一个水果,观察它是属于哪一种水果之后,我们把它从原来的盒子中替换掉. ...

  7. 比较几种工具Python(x,y) Anaconda WinPython

    浏览了一些相关的论坛,将几大工具的特点分别总结下: Python(x,y) 更新很慢,稳定性一般,默认带有很多包. WinPython  只能在windows上跑,界面友好,和Python(x,y)是 ...

  8. (非妙味3):浏览器window事件:及浏览各种尺寸介绍

    (触发)window.onload;  window.onscroll;   window.onresize; (兼容)网页可视区尺寸.网页全文尺寸.滚动距离 (实例)广告块高度动态居中.回到顶部   ...

  9. 谈HTTP的KeepAlive

    为什么要使用KeepAlive? 终极的原因就是需要加快客户端和服务端的访问请求速度.KeepAlive就是浏览器和服务端之间保持长连接,这个连接是可以复用的.当客户端发送一次请求,收到相应以后,第二 ...

  10. MySQL 备份与还原详解

    相关阅读: MySQL备份和恢复具体实施 http://www.linuxidc.com/Linux/2012-12/76257.htm MySQL备份与恢复的三种方法总结 http://www.li ...