linux+脚本+sheep,Linux基础入门及系统管理01-bash脚本编程之一变量、变量类型等16...

一、shell编程

1、编程语言:机器语言、汇编语言、高级语言;

a)高级语言:

静态语言:编辑型语言,通常是强类型(变量)语言,用关键字使被解释器后者编译器转换成被机器识别的代码或者指令,事先转换成可执行格式,转换完成后运行;

变量在使用前,必须事先声明,甚至还需要初始化为空(NULL);

c、c++、JAVA、C#等为静态语言;

动态语言:解释型语言,通常是弱类型语言,用解释器或转换器边解释边执行(on the fly),在执行的时候开始转换;

变量使用时才声明,甚至不区分类型,默认为字符串;

ASP、PHP、Shell、python、perl等为动态语言;

b)面向过程的语言:把编程的立足点在问题解决的过程本身,shell、C为面向过程语言;

c)面相对象的语言:把编程的立足点在问题解决的结果本身,JAVA、Python、perl、c++为面相对象语言;

d)变量:内存空间,命名的内存空间,变量时不断变化的。

内存:编址的存储单元;

如:二进制10装换成字符是16bit,十进制10转换成字符二进制是1010。至于需要转换成哪种类型,所以需要变量类型;

e)变量类型:包括,字符和数值。事先确定数据的存储格式和长度;

数值类型:整型、浮点型、布尔型(真假型)、日期时间型等等;

2、逻辑运算(1:真, 0:假);

a)与运算,两者为真才为真,一个为假结果一定为假:

1&0 = 0

0&1 = 0

0&0 = 0

1&1 = 1

b)或运算,一个为真结果一定为真:

1&0 = 1

0&1 = 1

0&0 = 0

1&1 = 1

c)非运算:

!真 = 假

!假 = 真假

d)异或运算,两者相同为假,不同为真:

1&0 = 1

0&1 = 1

0&0 = 0

1&1 = 0

二、bash变量

1、变量赋值:VAR_NAME=VALUE;

2、bash变量类型:

a)环境变量:

export VARNAME=VALUE,作用域为当前shell进程及其子进程;

b)本地变量(局部变量):

本地变量:VARNAME=VALUE,作用域为整个bash进程都可以使用;

局部变量:local VARNAME=VALUE,作用域为当前代码段;

c)位置变量:

$1, $2, ...

d)特殊变量,保存某些特殊命令的:

$?:保存上一个命令的执行状态的返回值;

程序状态返回代码(0-255):

0:正确执行;

1-255:错误执行,1,2,127系统预留的;

3、引用变量或变量替换:${VARNAME},括号有时可省略;

如:# ANIMAL=pig

# echo "There are some ${ANIMAL}s."

4、脚本在执行时会启动一个子shell进程:

a)命令行中启动的脚本汇继承当前shell环境变量;

b)系统自动执行的脚本(非命令行启动)就需要自我定义需要的各环境变量;

5、撤销变量:unset VARNAME;

6、查看当前shell中的变量

a)set:当前shell中所有变量;

b)printenv=env=export:查看当前shell中的环境变量;

7、补充增加变量命令格式

如:# ANIMAL=pig

# ANIMAL=$ANIMAL:goat

# ANIMAL=$ANIMAL:sheep

三、输出重定向(补充内容)

1、>, >>, 2>, 2>>, &>;

2、/dev/null:软件设备,bit bucket(数据黑洞):

如:id student &> /dev/null;

四、如何编写脚本

1、脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序;

2、shebang:魔数,每个脚本的第一行必须指定魔数,作为内核解读脚本的解读器--#!/bin/bash;

如:编写脚本同时执行cat /etc/fstab和ls /var命令:

# nano first.sh

#!/bin/bash

cat /etc/fstab

ls /var

# bash ./first.sh

练习:写一个脚本,完成以下任务:

1、添加5个用户user1-user5,每个用户添加完成后,都要显示用户某某已经添加成功;

2、每个用户的密码同用户名,而且要求:添加密码完成后不显示passwd命令的执行结果信息;

# nano user.sh

#!/bin/bash

useradd user1

echo "user1" | passwd --stdin user1 &> /dev/null

echo "Add user1 sucessfull."

#bash ./user.sh 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值