编程语言有两类

  强类型:如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编程其他文章请点击下边链接

 
 

     

最新文章

  1. Visual studio 通用开发环境配置:SDL,FFMPEG为例
  2. [C#6] 7-索引初始化器
  3. 【转】ubuntu 配置 java jdk1.8 环境,增加多版本 jdk 和切换方法
  4. Flask模板_学习笔记
  5. C语言 常用单词
  6. VSS
  7. __stdcall 与 __cdecl
  8. iOS 苹果真机鉴定
  9. Codeforces Round #Pi (Div. 2) E. President and Roads 最短路+桥
  10. IC卡,ID卡,M1卡,射频卡
  11. awk 用法小结
  12. 201521123037 《Java程序设计》第1周学习总结
  13. 邮件实现详解(四)------JavaMail 发送(带图片和附件)和接收邮件
  14. 二十三、Hadoop学记笔记————Spark简介与计算模型
  15. APP网站安全漏洞检测服务的详细介绍
  16. dedecms自定义模型内容调用多个Ueditor
  17. 关于js中的类式继承
  18. 深入理解C++11【4】
  19. 解决mysql插入数据报错[Err] 1146 - Table 'performance_schema.session_status' doesn't exist
  20. ajax缓存和编码问题

热门文章

  1. 页面报错常用状态码总结(Http常见状态码)
  2. git命令(转)
  3. 9、pytest -- 集成文档测试
  4. 重磅!微软发布 Visual Studio Online:Web 版 VS Code + 云开发环境
  5. LNMP+Redis
  6. JAVA程序打包方法-挺好
  7. python学习之【第十一篇】:Python中的文件操作
  8. Python - selenium自动化-Chrome(headless)
  9. 『题解』洛谷P2357 守墓人
  10. RouterOS安装以及搭建DHCP PPPoE PPTP L2TP服务