• shell介绍

      shell是一个编程语言解释器,这个解释器解释从键盘输入的命令,也解释存储在脚本中的命令序列,shell脚本是一个包含一系列命令的文件,运行一个脚本就是运行这个文件中的每个命令。可以用一个shell脚本在一次请求中来执行多个命令。shell脚本的执行:shell解释程序会fork+exec执行这个脚本命令,在exec调用中,内核会检查脚本的第一行(如:#!/bin/bash)找到来执行脚本的解释程序,然后装入这个解释程序,由它来解释执行脚本

shell的详细介绍和编程(上)_编程语言

  • shell的执行

    可以直接chmod +x shell.sh  加入执行命令 ./shell.sh 运行 ,也可以直接bash shell.sh 执行 bash -x 可以看到执行的详细,bash -n shell.sh 可以检查语法错误,拼写错误不会提示。

shell的详细介绍和编程(上)_解释器_02

shell的详细介绍和编程(上)_空间_03

shell的详细介绍和编程(上)_键盘_04

  • shell的变量

    shell的变量有:可变化的量,命名内存空间

    bash环境变量有如下:

本地变量:当前shell进程;

环境变量:当前shell进程及其子进程;

局部变量:某个函数执行过程;

位置参数变量:在脚本中引用传递给脚本的参数;在函数中引用传递给函数的参数;

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

本地变量定义:

    name=value  //  name: 变量名   =:赋值符号  =:赋值符号 value:值

    变量名:只能包含数字、字母和下划线;且不能以数字开头;

    引用变量:${name}, $name  // 本地变量定义与使用,只对当前shell生效,注销重新登录就失效,在子进程时之前定义的shell也会失效

    脚本里面引用:弱引用: "", 其内部的变量引用会被替换为变量值;强引用:'',其变量的变量引用会保持原有字符;命令引用:`COMMAND`, $(COMMAND),引用命令的执行结果;

    声明为整型:declare -i name[=value]  或者  let name=value

    变量的失效或者取消:脚本执行完成自动销毁:shell进程终止;手动销毁:unset name

[root@localhost bin]# tao="shaonian.blog.51cto.com"
[root@localhost bin]# echo $tao   // 声明变量tao
shaonian.blog.51cto.com
[root@localhost bin]# bash 
[root@localhost bin]# echo $tao   //子进程失效
[root@localhost bin]# set   //查看变量
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath

环境变量定义:

        有点像被“导出”的本地变量

export name[=value]

declare -x name[=value]

        查看所有环境变量:env, printenv, expor

shell的详细介绍和编程(上)_程序_05


局部变量:某个shell脚本执行过程;只在shell脚本执行过程中生效,之后再调用失效。


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

shell的详细介绍和编程(上)_程序_06

shell的详细介绍和编程(上)_程序_07