shell编程

一.shell编程

  1.bash的变量类型

   a.环境变量

   b.本地变量(局部变量)

   c.位置变量

   d.特殊变量

  2.本地变量的作用域为当前的bash进程,局部变量作用域为当前代码段,环境变量作用域为当前shell进程及其子进程

  3.本地变量的申明:

   varname=value 

   局部变量的申明:

   local varname=value

   环境变量:

   export varname=value

  4.双引号进行变量的替换,单引号不进行变量的替换

  5.脚本在执行时会启动一个子shell进程:

命令行中启动的脚本会继承当前shell环境变量

系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量

  6.用bash命令可以一个新的子进程

  7.逻辑运算: 或 与 非

   或: 只有当两个逻辑判断结果为真时,整个结果才为真

   与: 有一个逻辑判断结果为真时,整个的结果为真(短路判断,当第一个逻辑判断结果为真时,后面的判断就不用执行,整个的结果肯定为真)

   非: 逻辑判断结果为真,整个结果为假。逻辑判断结果为假,整个结果为真

  8.特殊变量:

   $?: 上一个命令的执行状态返回值

   程序执行,可能有两类返回值:

   程序执行结果

   程序状态返回代码(0-255)

  0: 正确执行

  1-255:错误执行,1,2,127系统预留

  9./dev/null--软件设备

   作用: 不将执行命令的结果输出到屏幕(&>)

  10.撤销变量--unset

    用法: unset varname

  11.查看当前进程的所有环境变量:

    printenv

    env

    export

  12.shell文件的编写

    #!/bin/bash  文件的默认开头第一行,指定使用哪种shell

    shell脚本写完后需要手动给shell文件执行权限

    chmod +x ./filename

    ./filename 或 bash ./filename 执行脚本文件

练习:写一个脚本,完成以下任务

1、添加5个用户, user1,..., user5

2、每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd命令的执行结果信息

3、每个用户添加完成后,都要显示用户某某已经成功添加

# useradd user1

# echo "user1" | passwd --stdin user1 &> /dev/null

# echo "Add user1 successfully."

  

   

   

  



  

本文出自 “珞辰的博客” 博客,请务必保留此出处http://luochen2015.blog.51cto.com/9772274/1636686

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