http://www.linuxsky.org/doc/newbie/201004/389.html

  

1.基础

  

#!/bin/bash   //bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本

#                 //shell脚本注释符号

  

2.变量和使用

  

HOME="/home"                //注意赋值不要有空格

a=123

HOME_LIST=$(ls /home) //把命令的执行结果赋值给变量

ehco $HOME                   //$ 符号是获得变量HOME的值

a=a+1

  系统变量:

  $0 这个程序的执行名字

  $n  这个程序的第n个参数值,n=1...9

  $*  这个程序的所有参数

  $# 这个程序的参数个数

  $$ 这个程序的PID

  $! 执行上一个背景指令的PID

  $? 上一个指令的返回值

3.if语句

  

if [ "22" -lt "33" ]   then   //注意空格

  echo "22 less than 33"

else

  echo "no"

fi                                  //if语句的结束

4.case语句

echo "enter a number"

  read ans                    //读取一个变量read

case $ans in

  1)

  echo   "you numer is $ans"

  ;;                                //注意符号是两个 ;

  2)

  echo "you number is 2"

  ;;

  [3-9])

  echo "you number is $ans"

  ;;

  *)                                   //*通配符

  echo "others"

esac

5.比较运算符

  运算符                            描述                                            示例

  文件比较运算符

    -e filename        如果 filename 存在,则为真            [ -e /var/log/syslog ]

  -d filename       如果 filename 为目录,则为真       [ -d /tmp/mydir ]

  -f filename        如果 filename 为常规文件,则为真 [ -f /usr/bin/grep ]

  -L filename        如果 filename 为符号链接,则为真   [ -L /usr/bin/grep ]

  -r filename          如果 filename 可读,则为真              [ -r /var/log/syslog ]

  -w filename        如果 filename 可写,则为真            [ -w /var/mytmp.txt ]

  -x filename         如果 filename 可执行,则为真           [ -L /usr/bin/grep ]

    filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ]

   filename1 -ot filename2 如果 filename1 比 filename2 旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]

  

  字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)

    -z string               如果 string 长度为零,则为真          [ -z "$myvar" ]

  -n string              如果 string 长度非零,则为真               [ -n "$myvar" ]

  string1 = string2 如果 string1 与 string2 相同,则为真 [ "$myvar" = "one two three" ]

  string1 != string2 如果 string1 与 string2 不同,则为真 [ "$myvar" != "one two three" ]

  

  算术比较运算符

    num1 -eq num2                 等于                            [ 3 -eq $mynum ]

  num1 -ne num2                不等于                         [ 3 -ne $mynum ]

  num1 -lt num2                    小于                            [ 3 -lt $mynum ]

    num1 -le num2              小于或等于                       [ 3 -le $mynum ]
  
num1 -gt num2 大于 [ 3 -gt $mynum ]
  
num1 -ge num2 大于或等于 [ 3 -ge $mynum ]

  

6.bash中几种循环

  6.1. for name [ in word ] ; do list ; done

  6.2. for (( expr1 ; expr2 ; expr3 )) ; do list ; done    //注意有2层括号

  6.3 while [expr] do list; done

  其中list简单说就是一串由操作符(operator ;、&、&&、||)

  分各给出一个简单例子:

  1.

  for filename in $(ls)

  do

  cat $filename

  done

  2.

  for((i=0; i<10; i++))

  do

  echo $i

  done

  3.

  x=1

  sum=0

  while [ $x -le 10 ] //注意[ ] 两边的空格

  do

  let sum=sum+$x   //shell中算术计算使用let

  let x=x+1

  done

  echo $sum

(转)Linux bash shell脚本语法入门的更多相关文章

  1. Linux bash shell脚本语法入门

    1.基础 #!/bin/bash   //bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本 #                 //shell脚本注释符号 2.变量和使用 HOME= ...

  2. Linux Bash Shell j简单入门

    BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1     ...

  3. linux bash Shell脚本经典 Fork炸弹演示及命令详解

    Jaromil 在 2002 年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在 shell 中运行后几秒后系统就会宕机: :(){:|:&};: 这样看起来不是很好理 ...

  4. Linux Shell——bash shell 脚本简介

    bash shell 脚本简介 shell 运行环境 如果你运行的是 Unix 或 Linux 系统,例如 Ubuntu,Red Hat,SUSE Linux,还有macOS,都是内置了 bash s ...

  5. 08 bash特性--shell脚本编程入门

    shell脚本编程入门 编程语言介绍 编程语言分为:机械语言.汇编语言和高级语言: 计算机能识别的语言为机械语言,而人类能学习的并且能够方便掌握的为高级语言,所以,我们所编写的程序就要通过编译来转换成 ...

  6. shell脚本从入门到精通(初级)之入门篇

    写在开头 本文是阅读<Linux命令行与shell脚本编程大全>时的一些笔记,主要是shell脚本的一些基本语法, 还有很多细节和高级内容没有写到. 笔者也是shell script菜鸟, ...

  7. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  8. 系统管理中 bash shell 脚本常用方法总结

    在日常系统管理工作中,需要编写脚本来完成特定的功能,编写shell脚本是一个基本功了!在编写的过程中,掌握一些常用的技巧和语法就可以完成大部分功能了,也就是2/8原则 1. 单引号和双引号的区别 单引 ...

  9. 【Linux】linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法

    linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法   linux bash shell之变量替换::=句法.=句法.:-句法.-句法. ...

随机推荐

  1. 小学生之使用Mybatis反向生成dao,entity,xml

    本小学生刚进公司的时候,就一顿装逼,不管别人问我啥我都会说:"会"!毕竟在公司吗,什么都要装,不要别人看出你的底细.不过有一天,听说用Mybatis可以反向生成dao(第一次听说) ...

  2. 关于IIS部署成功后,局域网其他用户无法访问的问题解决方法

    关于win7部署iis后,局域网的其他用户不能访问的问题.   在win7系统中,部署好iis后,自己本地可以发布和预览.但在局域网中的其他用户不可以访问.下面说一下这个原因. 这是因为win7自带的 ...

  3. webform repeater

    repeater:由模板构成,解析后模板就不存在了             需要指定数据源进行数据绑定 List<Fruit> list = new FruitDA().Select(); ...

  4. 新闻源图片放到js里

    例子:http://www.s1979.com/jkys/20141209/2547965.html <script type="text/javascript" src=& ...

  5. Android时间戳转换为标准Datetime(yyyy-MM-dd hh:mm:ss)格式

    下列函数为实现过程,已经测试通过. /// <summary> /// Android时间戳转换为标准Datetime /// </summary> /// <param ...

  6. HashMap的扩容机制, ConcurrentHashMap和Hashtable主要区别

    源代码查看,有三个常量, static final int DEFAULT_INITIAL_CAPACITY = 16; static final int MAXIMUM_CAPACITY = 1 & ...

  7. PHP set_error_handler() 函数

    定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数. 该函数用于创建运行时期间的用户自己的错误处理方法. 该函数会返回旧的错误处理程序,若失败,则返回 null. 语 ...

  8. 利用 Makefile 写的小程序

    1.建立一个工程 2.写一个进度条的程序(原理就是在同一位置重复打印某一个字符(变化),达到动态显示的效果) 所以说我们这里只用回车'\r',覆盖这一行以前的输出,重新向缓冲区写数据刷新缓冲区,就能达 ...

  9. linux初识-02常用命令

    文件目录操作命令 ls 现实文件和目录列表 ls -l 列出文件的详细信息 ls -a 列出当前目录所有文件 包括隐藏的文件 mkdir 创建目录 -p 父目录不存在的情况下先生成父目录 cd 切换目 ...

  10. 移植openssh到nuc951 evb板

    移植openssh到nuc951 evb板 一 应用环境: 硬件:nuc951evb 软件:linux2.6.35 bsp 二 交叉编译openssl openssh 1.下载 openssl-1.0 ...