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

shell进一步学习

时间:2020-07-01 23:54:07      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:决定   complete   字符串类型   echo   learn   stc   撤销   注意   home   

一.关于解释器

(1)Linux提供的Shell解析器有:

[root@iZwz9fdluqx20m1qe0ml4qZ shell_learning]# cat /etc/shells

/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin

(2)bash和sh的关系

[root@iZwz9fdluqx20m1qe0ml4qZ bin]# ll|grep bash

-rwxr-xr-x. 1 root root 964544 Apr 11 2018 bash
lrwxrwxrwx. 1 root root 10 Nov 29 2018 bashbug -> bashbug-64
-rwxr-xr-x. 1 root root 6964 Apr 11 2018 bashbug-64
lrwxrwxrwx. 1 root root 4 Nov 29 2018 sh -> bash

(3)Centos默认的解析器是bash

[root@iZwz9fdluqx20m1qe0ml4qZ bin]# echo $SHELL

/bin/bash

二.Shell脚本入门

  1.脚本格式

    脚本以#!/bin/bash开头(指定解析器)

 

  2.运行方式

1.修改文件权限  
    chmod 777 filename
    ./filename   运行

2.bash filename
    sh filename

 

  注意:第二种执行方法,本质是bash解析器帮你执行脚本,所以脚本本身不需要执行权限。第一种执行方法,本质是脚本需要自己执行,所以需要执行权限。

 

三.shell中的变量

 1.系统变量  

  1. 常用系统变量

    $HOME、$PWD、$SHELL、$USER等

  2.案例实操

  (1)查看系统变量的值

    [root@iZwz9fdluqx20m1qe0ml4qZ bin]# echo $HOME

    /root

  (2)显示当前Shell中所有变量:set

    [root@iZwz9fdluqx20m1qe0ml4qZ bin]# set

    BASH=/usr/bin/bash
    BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
    BASH_ALIASES=()
    BASH_ARGC=()
    BASH_ARGV=()
    BASH_CMDS=()
    BASH_LINENO=()

 2.用户自定义变量

  1.基本语法

    (1)定义变量:变量=值

    (2)撤销变量:unset 变量

    (3)声明静态变量:readonly变量,注意:不能unset

  2.变量定义规则

          (1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。

          (2)等号两侧不能有空格

          (3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算

          (4)变量的值如果有空格,需要使用双引号或单引号括起来

     (5)可把变量提升为全局环境变量,可供其他Shell程序使用(解析器全局变量)

      export 变量名

  3.特殊变量 $n

  1.基本语法

 $n    (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})

  技术图片

 

 

 

  4. 特殊变量:$#

   1.基本语法

          $#    (功能描述:获取所有输入参数个数,常用于循环)

   技术图片

 

 

 5.特殊变量:$?

   

  1.基本语法

    $?  (功能描述:最后一次执行的命令的返回状态如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)

  技术图片

 

  6.特殊变量:$*、$@

  1.基本语法

          $*    (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

          $@  (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

  技术图片

 

shell进一步学习

标签:决定   complete   字符串类型   echo   learn   stc   撤销   注意   home   

原文地址:https://www.cnblogs.com/tjp40922/p/13222317.html

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