Shell脚本编程的一些基础

bash 脚本名  可以运行脚本
bash的常用选线
#bash
 -n 语法测试
 -x 显示过程

编程语言:
动态语言(脚本语言)
 变量不需要事先证明
 解释执行
  编辑--->执行
 高级脚本语言  perl 太自由  Python (完全面向对象) 只提供一种最优的 方法     ruby
 asp jsp php  (不用使用到root权限)   面向网页的脚本语言
 
 
静态语言(编译行语言)
 变量必须声明,严格区分变量类型
 编译后才能执行
  编辑--->编译--->连接--->执行
 
 
 
变量是命名的内存空间   命名 为了以后程序的调用方便


变量:
 变量类型:限定 占内存空间大小、数据存储格式
  3
  字符  8bit
  数值 2bit
 
 
 
 
bash   不严格区分变量类型       区分数值型和字符型   不支持浮点行
 2/3=0  只区整数部分--->圆整
 
 
 
命令行下声明的变量 只对当前登录的shell 及子shell 有效
变量 
 a3
 declare
  -i  integer
  -x 环境变量
 declare -i A=0  初始化 声明一个变量  并赋值
 set A=3  set  声明的都是本地变量            有空格要用引号引起来
 变量类别(class):
 本地变量:  只对当前shell有效 整个脚本都有效  不能到其他脚本
 环境变量(全剧变量):对当前shell和子shell 有效  
       export  declare -x  声明环境变量
   导出环境变量的方法:
      1、先先声明变量,然后export导出
      2、直接export导出
 特殊变量:
     $0  特殊变量 用于引用脚本本身的名字
     $* $@   特殊变量  引用一个脚本的所有参数
    $* 把每个变量都当一个字符串
    $@ 把所有变量当成一个字符串
     $# 传递个命令行参数的个数   
 位置变量:
     $1-9 {0-无线}
     shift $1   轮换显示变量


 local  定义变量   只对当前代码段有效

变量用完之后怎么处理:脚本结束后自动收回也可以
 unset  撤销变量  收回
 
 
 
如何引用变量:
${变量名}  变量替换/引用
$变量名        ANIMAL=pig   There are some ${ANIMAL}s.


引号;引用
"":弱引用
'':强引用  强引用中的值不做变量替换  直接引用过来
``:命令引用

变量名的使用规定:
 只能包含字母数字和下划线,但是不能以数字开头

#echo 变量  显示变量的值

用户工作环境配置文件:
 全局配置:/etc/prefile, /etc/profile.d/*, /etc/bashre
 个人配置:~/.bash_profile,  .bashrc
  ~/.bash_history  命令历史
  ~/.bash_logout   登出配置
 
  profile类 :交互式登录用户生效
     1、设置环境变量
     2、运行一些命令或脚本
 
    
  bashrc类:交互式和非交互式登录用户生效(不用用户登录就系要执行一些)
     1、设置本地变量
     2、定义命令别名

交互式登录用户执行用户配置文件的过程
/etc/profile--->/etc/profile.d/*--->~/.bash_profile--->~/.bashrc--->/etc/bashrc
非交互式登录:
~/.bashrc--->/etc/bashrc--->/etc/profile.d/*    


显示变量
#set  显示所有变量
#export  只用于显示声明过的环境变量
#printenv  显示环境变量

几个关键的环境变量
 DISPLAY:定义显示信息显示到那个显示器上去
 LANG:声明当前的语言环境.字符编码
 PATH: 声明 命令行在那个位置找命令对应的文件
 

输入输出重定向 和管道

标准输入,标准输出,标准错误输出
标准输入:STDIN  用0表示 默认是键盘
标准输出:STDOUT 用1表示 默认是监视器
标准错误输出:STDERR 用2表示 默认是监视器

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wydwjj.html