shell编程

################################################

静态语言

动态语言

################################################

编程语言:机器语言,汇编语言,高级语言

################################################

面向对象的编程语言:sehll c

面向对象的编程语言:JAVA Python perl c++

################################################

变量:内存空间,命名

内存:编址的存储单元

################################################

变量类型:定义变量的存储格式

  字符型

  数值型:整型,浮点型

################################################

逻辑运算:&与 ||或 !非 异或    

################################################

bash变量类型

  环境变量

  本地变量(局部变量)

  位置变量

  特殊变量

变量名称规则

   不能和存在的变量重名

   见名知意

################################################

VARNAME=VALUE 整个bash进程都有效

local VARNAME=VALUE 对当前代码有效

环境变量:

当前的shell进程及子进程有效 

################################################

撤销变量:unset VARNAME

################################################

$? :程序执行完成的返回值

o正确

1-255错误返回值 1,2 127预留

[root@Jameszhan ~]# $?

-bash: 127: command not found

[root@Jameszhan ~]# echo $?

127

[root@Jameszhan ~]# echo it is

it is

################################################

输出重定向

>

>>

2>

2>>

&> 错误和正确结果

把返回值给/dev/null

[root@Jameszhan ~]# cd /cdd &> /dev/null

[root@Jameszhan ~]# echo $?

1

[root@Jameszhan ~]# cd / &> /dev/null

[root@Jameszhan /]# echo $?

0

/dec/null

[root@Jameszhan ~]# echo $?

0

查看环境变量的命令

printenv

env

export

################################################

脚本的作用:为完成特定任务的命令堆砌

脚本编写:创建user1 user2 user3 user4 user5 用户

##########

1,创建.sh文件

[root@Jameszhan /]# vim /tmp/useradd.sh

##########

2,书写格式

[root@Jameszhan /]#

#!/bin/bash

#

useradd user1

useradd user2

useradd user3

useradd user4

useradd user5

##########

3,给脚本执行权限

[root@Jameszhan ~]# chmod +x /tmp/useradd.sh

##########

4,执行脚本

[root@Jameszhan ~]# /tmp/useradd.sh

################################################

条件判断

bash中如何实现条件判断

条件测试类型

 整数

 文字

 文件

################################################

条件测试表达式

 [expression]

 `expression`

 test expression

整数比较:比较加中括号

 -eq: =相等 [ $a -eq $b ]

 -ne:\=不等

 -gt:>大于

 -lt:<小于

 -Gt:>=

 -Lt:<=

################################################

命令间的逻辑关键

  逻辑与:&& 第一个为假,第二个不用执行

          ||  第一个为真,第二个要执行

创建user7,不存在创建user7,存在提示已存在

[root@Jameszhan ~]# vi ./id.sh

#!/bin/bash

#

! id user7 &> /dev/null && useradd user7 || echo 'user7 is exist'

      

      或:|| 第一个为真

################################################