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 。


本文出自 “Nick Liu的博文” 博客,请务必保留此出处http://zkhylt.blog.51cto.com/3638719/1394732

Linux基础入门及系统管理01-bash脚本编程之一变量、变量类型等16,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。