码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2015-09-19 22:51:25      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:空间   键盘   程序   编程语言   解释器   

  • shell介绍

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

技术分享

  • shell的执行

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

技术分享

技术分享

技术分享

  • 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脚本执行过程;只在shell脚本执行过程中生效,之后再调用失效。


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

技术分享

技术分享


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

标签:空间   键盘   程序   编程语言   解释器   

原文地址:http://shaonian.blog.51cto.com/2975261/1696370

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!