以下知识来自尚硅谷。
一、概述
Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。
二、脚本入门
1、脚本格式
脚本以#!/bin/bash开头(指定解析器)
2、第一个Shell脚本:
需求:创建一个Shell脚本helloworld.sh,输出helloworld
编辑helloworld.sh脚本:
#!/bin/bash echo "helloworld"
执行helloworld.sh脚本:sh helloworld.sh 或者 bash helloworld.sh
如果直接 ./helloworld.sh来执行,若需要执行权限,则可先chmod 777 helloworld.sh,再执行。
3、变量
(1)系统变量
1、常用系统变量:
- $HOME:家目录
- $PWD:当前所在目录
- $SHELL:当前所用的shell编译器
- $USER:当前的用户
(2)自定义变量
1.基本语法
(1)定义变量:变量=值(等号两边不能有空格)
(2)撤销变量:unset 变量
(3)声明静态变量:readonly变量,注意:不能unset
2、定义规则
(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
(2)等号两侧不能有空格
(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
(4)变量的值如果有空格,需要使用双引号或单引号括起来。如 D="banzhang love mm"
(5)可把变量提升成全局环境变量,可供其他shell程序使用。export 变量名
(3)特色变量:$n
1、$n (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})
(4)特色变量:$#
1、$# (功能描述:获取所有输入参数个数,常用于循环)。
(5)特色变量:$*、$@
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
(6)特色变量:$?
$? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)