文章目录

      • 解析器
      • 执行
      • 系统变量
        • 常用系统变量
      • 自定义变量
      • 特殊变量
        • $n
        • $#
        • $*、$@
        • $?

解析器

[root@note01 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash

对于bash 与sh 的关系

[root@note01 bin]# ll | grep bash
-rwxr-xr-x. 1 root root 904872 Oct 16 2014 bash
lrwxrwxrwx. 1 root root 4 Oct 29 2018 sh -> bash

Centos默认的解析器是bash

[root@note01 bin]# echo $SHELL
/bin/bash

执行

脚本的开头以 #!/bin/bash 开头,对于一些脚本使用sh或者bash + 脚本的绝对路径,使用这种方式不用赋予脚本+x的权限

直接采用脚本的绝对路径方式需要对脚本赋予+x的权限

系统变量

常用系统变量

$HOME

[root@note01 bin]# echo $HOME
/root

$PWD

[root@note01 bin]# echo $PWD
/bin

$SHELL

[root@note01 bin]# echo $SHELL
/bin/bash

$USER

[root@note01 bin]# echo $USER
root

显示shell中所有的变量

[root@note01 bin]# set

自定义变量

1.基本语法

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

(2)撤销变量:unset 变量

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

2.变量定义规则

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

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

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

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

特殊变量

$n

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

$#

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

∗ 、 *、 @

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

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

$?

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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部