linux shell编程之变量和bash配置文件(第一篇)

编程语言有两类

  强类型:如C语言。数据具有其特定的类型,先声明定义后才能使用。数据运算时必须符合类型要求(如不能把字符串类型数据直接与整型数据做算数运算)

  弱类型:如shell。数据默认为字符型,不用事先声明。数据运算时会自动转换数据类型。

 

1、变量

  变量命名规则

  变量类型

  变量引用

1.1、变量命名规则:

  •   变量由字母、数字、下划线组成。
  •   不能由数字开头

1.2、变量类型:本地变量、环境变量、局部变量、特殊变量(内置)、参数变量、只读变量。

  

  注意如果变量没有定义在shell的配置文件,那么他的生命周期只是当前shell进程,一退出就失效。

  作用域示例:

    本地变量:可以看到再次打开一个bash时使用echo $test并不会输出s1。所以本地变量的作用域为当前shell。

    

    环境变量:子shell也起作用

    

 

  变量定义示例:

    

1.3、变量引用(对上表的补充):

   “变量名”(双引号):弱引用,其中的变量引用会被替换为变量值
   '变量名'(单引号) :强引用,其中的变量引用不会被替换为变量值,而保持原字符串
  变量引用示例
    
 

2、shell脚本编程:利用系统上的命令和编程组件的面向过程的编程。

2.1bash的配置文件:profile类和bashrc类

    profile类:为交互式登录的shell提供配置

    bashrc类:为非交互式登录的shell提供配置  

      

      交互式:通过终端输入用户名和密码登录后打来shell

          通过su - USERNAME或su -l USERNAME登录后打开的shell

        配置文件读取顺序:/etc/profile-->/etc/profile.d/*-->~/.bash_profile-->/etc/bashrc

      非交互式:通过su USERNAME执行的登录

           GUI图形界面下打开的终端

           运行脚本文件中打开的shell

        配置文件读取顺序:~/.bashec-->/etc/bashrc--->/etc/profile.d/*

      总结:两者的区别可以简单的说成是——是否需要输入密码。

2.2配置文件修改后生效示例

  注意,修改配置文件不会立即生效可以使用.(英文点号)或者source来强制重读配置文件,使得修改立刻生效

  首先修改.bashrc文件添加alias ech='echo $PATH'

 

  使用alias并没有打印出我们刚添加的命令别名,使用ech直接报错

  使用source FILE_NAME重读配置文件后使用alias命令,可以看到我们新添加的ech。

 

shell编程其他文章请点击下边链接

 

 

 

 

     

posted on 2018-06-10 11:02  HowOldAreYou  阅读(230)  评论(0编辑  收藏  举报

导航