sakko51150 发表于 2018-8-26 12:07:03

shell变量 和变量类型


  shell是弱类型变成语言
  变量赋值: VAR_NAME=VALUE
  撤销变量: unset VAR_NAME
  特殊变量: $? 执行状态码
  $# 参数geshu
  $*参数列表
  $@参数列表
  bash:
  变量类型    1、环境变量
  export VAR_NAME=VALUE
  脚本在执行的时候会启动一个子shell进程:
  命令行中启动的脚本会继承当前shell的环境变量
  系统自动执行的程序脚本(非命令行启动)就需要自我定义环境变量
  2、本地变量(局部变量)
  VAR_NAME=VALUE 作用于整个bash进程。
  local VAR_NAME=VALUE 作用于当前代码段。
  3、位置变量
  $1,$2,.....
  4、特殊变量
  $?:保存上一个命令执行状态返回值
  程序执行以后可能有两只返回值
  1、程序执行结果
  2、程序执行状态返回代码(0-255)
  0是正确执行
  1-255:错误执行 1,2,127系统保留
  bash如何实现条件判断?
  条件测试类型:
  1、整数测试
  2、字符测试
  3、文件测试
  条件测试的表达式:
  [ expression ] 两头空格 否则语法错
  ` expression ` 同上
  tset expression
  整数比较:
  int1 -eq int2    两数相等为真
  int1 -ne int2    两数不等为真
  int1 -gt int2    int1大于int2为真
  int1 -ge int2    int1大于等于int2为真
  int1 -lt int2    int1小于int2为真
  int1 -le int2    int1小于等于int2为真
  命令的逻辑关系:
  逻辑与:&&
  逻辑或:||
#!/bin/bash  
! id user1 &> /dev/null && useradd user1 && echo "user1" |passwd --stdin user1 &> /dev/null || echo "用户已经存在"
  条件判断,控制结构
  单支语句判断
  if 判断条件 ;then
  statement1
  statement1   42   3
  .....
  else
  statement3
  statement4
  ....
  fi
  多分支if语句
  if 判断条件1
  then
  statement1
  ....
  elif 判断条件2
  then
  statement2
  elif 判断条件3
  then
  statement3
  else
  statement4
  fi
  文件测试
  -e file :测试文件是否存在
  -f file :测试是否为普通文件
  -d file :测试指定路径是否为目录
  -x
  -r
  -w file测试文件的权限


页: [1]
查看完整版本: shell变量 和变量类型