1.1 Shell定义
1、基本定义
Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。
2、CentOS 7 默认使用的 Shell 是 bash。
3、bash基本特点
- 一条命令只做一件事
- 为了组合命令和多次执行,使用脚本文件来保存需要执行的命令。
- 赋予该文件执行权限(chmod u+rx filename)
1.2 Shell执行方式
1.2.1 脚本格式要求
- 脚本以
#!/bin/bash
开头。 - 脚本需要有可执行权限。
1.2.2 基本语法
1、创建shell脚本
vim *.sh
2、编写内容,脚本以#!/bin/bash
开头。
#!/bin/bash
echo "具体内容....."
3、给脚本文件赋予可执行权限
chmod u+rx filename
4、执行脚本命令
- bash ./filename.sh(外部命令)
- ./filename.sh(外部命令)
- source ./filename.sh(内建命令)
- .filname.sh(内建命令)
注意: 内建命令和外部命令的区别: 内建命令不需要创建子进程,内建命令对当前 Shell 生效。
1.2.3 案例说明
1、创建一个 Shell 脚本,输出 hello world!,先执行vim myShell.sh
#!/bin/bash
echo "hello,world~"
2、添加权限chmod u+rx myShell.sh
3、执行脚本语言./myShell.sh
1.3 Shell的变量
1.3.1 变量介绍
1、linux Shell 中的变量分为,系统变量和用户自定义变量。
2、系统变量:$HOME、$PWD、$SHELL、$USER
等等,比如: echo $HOME
#!/bin/bash
echo "PATH=$PATH" #输出系统变量
echo "user=$USER"
3、显示当前shell中所有的变量: set
1.3.2 shell变量的定义
1、基本语法
定义变量: 变量=值。
撤销变量: unset 变量。
声明静态变量:readonly 变量,注意:不能 unset
2、入门案例1
定义变量a,撤销变量a。
#!/bin/bash"
a=100
echo "a=$a"
unset a
echo "a=$a"
3、入门案例2
声明静态变量a=98,不能unset
4、定义变量的规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
- 等号两侧不能有空格。
- 变量名称一般习惯为大写。
5、将命令的返回值赋给变量
A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量 A
A=$(ls -la) 等价于反引号
代码示例:
#!/bin/bash
RESULT='ls -l /home'
echo $RESULT #使用''将命令括起来
echo ""
MY_DATE=$(date)
echo "date=$MY_DATE" #使用$()来执行也可以
1.4 设置环境变量
1.4.1 基本语法
参数 | 功能描述 |
---|---|
export 变量名=变量值 | 将 shell 变量输出为环境变量/全局变量 |
source 配置文件 | 让修改后的配置信息立即生效 |
echo $变量名 | 查询环境变量的值 |
1.4.2 入门案例
1、在etc/profile 文件中定义 TOMCAT_HOME 环境变量。
vim /etc/profile
注意:在输出 TOMCAT_HOME
环境变量前,要先执行source /etc/profile
,这样才能真正的生效。
2、查看环境变量 TOMCAT_HOME 的值。
echo $TOMCAT_HOME
3、在另一个shell中执行环境变量
shell 脚本的多行注释
:<<! 内容 !
#!/bin/bash
#多行注释
:<<!
RESULT='ls -l /home'
echo $RESULT
echo ""
MY_DATE=$(date)
echo "date=$MY_DATE"
!
#使用环境变量
echo "tomcathome=$TOMCAT_HOME"
1.5 位置参数变量
1.5.1 基本介绍
当执行一个 shell 脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量。
比如 :./myshell.sh 10 15
, 这个就是一个执行 shell 的命