(转)Linux bash shell脚本语法入门
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脚本语法入门的更多相关文章
- Linux bash shell脚本语法入门
		
1.基础 #!/bin/bash //bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本 # //shell脚本注释符号 2.变量和使用 HOME= ...
 - Linux Bash Shell j简单入门
		
BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1 ...
 - linux bash Shell脚本经典 Fork炸弹演示及命令详解
		
Jaromil 在 2002 年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在 shell 中运行后几秒后系统就会宕机: :(){:|:&};: 这样看起来不是很好理 ...
 - Linux Shell——bash shell 脚本简介
		
bash shell 脚本简介 shell 运行环境 如果你运行的是 Unix 或 Linux 系统,例如 Ubuntu,Red Hat,SUSE Linux,还有macOS,都是内置了 bash s ...
 - 08 bash特性--shell脚本编程入门
		
shell脚本编程入门 编程语言介绍 编程语言分为:机械语言.汇编语言和高级语言: 计算机能识别的语言为机械语言,而人类能学习的并且能够方便掌握的为高级语言,所以,我们所编写的程序就要通过编译来转换成 ...
 - shell脚本从入门到精通(初级)之入门篇
		
写在开头 本文是阅读<Linux命令行与shell脚本编程大全>时的一些笔记,主要是shell脚本的一些基本语法, 还有很多细节和高级内容没有写到. 笔者也是shell script菜鸟, ...
 - 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
		
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
 - 系统管理中 bash shell 脚本常用方法总结
		
在日常系统管理工作中,需要编写脚本来完成特定的功能,编写shell脚本是一个基本功了!在编写的过程中,掌握一些常用的技巧和语法就可以完成大部分功能了,也就是2/8原则 1. 单引号和双引号的区别 单引 ...
 - 【Linux】linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法
		
linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法 linux bash shell之变量替换::=句法.=句法.:-句法.-句法. ...
 
随机推荐
- UVA 12378 Ball Blasting Game 【Manacher回文串】
			
Ball Blasting Game Morteza is playing a ball blasting game. In this game there is a chain of differe ...
 - 帧动画 AnimationDrawable
			
Drawable Animation(Frame Animation):帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果. 首先,在res/drawable中定义动画 < ...
 - 关于oracle dblink的知识。
			
create database link WZGLconnect to MMCSG_GX(用户名)using '(description=(address_list=(address=(host=xx ...
 - php学习之路
			
1.php拼接字符串+查询 $floor_id = M('house_floor_input')->where($map1)->field('id')->select(); $flo ...
 - 【C#编程基础学习笔记】6---变量的命名
			
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]6---变量的命名 ----- ...
 - ecshop模板如何修改详细图解
			
ecshop模板如何修改?很多人在问这个问题,今天就以图解的方式给大家详细说下.相信学完之后,你会很清楚如何修改ecshop模板,不管你是初学者还是程序高手. 1, ecshop的模板结构 ecsho ...
 - 【Jquery EasyUI + Servlet】DataGrid,url请求带中文出现乱码的解决方案
			
demo.jsp: <% String name = "乱码"; %> $(function(){ $('#dg').datagrid({ url: 'DemoServ ...
 - 由setTimeout()里的this引出的this
			
example 1: window.id='windowid'; function M(){ this.id='Mid'; this.f1=function(){console.log(this.id ...
 - 自定义ORM框架(转转)
			
ORM背景 在数据库界,主流的数据库都是关系型数据库,其采用的关系型数据结构模型,无论从数学上还是实践中都相当的成熟,得到非常广泛的应用.在关系型数据结构理 论中,所有的数据都组织成一个个相互独立的二 ...
 - Centos+nginx+uwsgi+Python多站点环境搭建
			
前言 新公司的第一个项目,服务器端打算用python作为restful api.所以需要在Centos上搭建nginx+fastcgi+python的开发环境,但后面网上很多言论都说uwsgi比fas ...