Shell 脚本入门二

    脚本语言:

    不需编译,由解释器解释执行;

    弱类型:变量类型

    变量通常不需要事先声明


    编译语言 (gcc: GNU C Complier)

    事先编译(源程序-->目标代码-->链接-->执行);运行时不再依赖于编译器;

    强类型

    变量需要事先声明


    脚本语言:bash, python, perl, ruby


    bash:面向过程


    变量类型:

    本地变量

    set VAR_NAME=value

    unset VAR_NAME

    ${VAR_NAME}

    作用范围:当前shell进程;

    局部变量

    local VAR_NAME=value

    unset VAR_NAME

    ${VAR_NAME}

    作用范围:在当前shell进程的局部范围内有效;

    环境变量

    export VAR_NAME=value

    unset VAR_NAME

    ${VAR_NAME}

    使用范围:当前shell及其子shell;

    位置变量:$1, $2, ...

    特殊变量:$$, $?, $#, $@, ...


    bash脚本:

    # bash /path/to/script_file.sh


    独立执行:

    1、要有执行权限;

    2、定义好shebang, 即脚本的第一行:#!/path/to/explainer,例如:/bin/bash, /usr/bin/python


    /root/a.sh


    # /root/a.sh: 所有命令都会到PATH环境变量所定义的路径下去查找;

    # export PATH=$PATH:/root


    bash的配置文件

    profile类:/etc/profile, /etc/profile.d/*.sh, ~/.bash_profile

    声明环境变量

    执行程序或脚本

    bashrc类:/etc/bashrc, ~/.bashrc

    定义本地变量

    定义命令别名


    user1, user2, user3


    密码同用户名


    脚本文件中,所有以#开头的行均为注释行,不会被执行;


    检查脚本的语法错误,不执行脚本:

    bash -n /path/to/script_file.sh


    调试执行脚本:

    bash -x /path/to/script_file.sh


    变量名称:

    只能包含字母、数字和下划线

    不能以数字开头

    严格区分大小写

    要做到见名知义

    命名规范,风格统一


    面向过程的编译语言,语言控制结构:

    顺序执行:默认法则,逐条执行各语句

    选择执行:条件判断,只有部分是符合条件,只执行符合条件的部分;

    布尔测试:真,假;

    0:真

    1-255:假

    循环执行:将同一段代码反复执行n次;循环必须要有退出条件,否则,就成为了死循环;



    控制语句:

    bash循环控制语句:

    for

    while

    until


blog comments powered by Disqus

Published

31 October 2013

Tags