Linux Shell ——— Bash介绍

目录

一、Shell脚本初识

1、编写Shell脚本文件test.sh

(1)Shell脚本文件命名

(2)Shell脚本文件第一行

(3)查看自己的linux系统的默认解析器

(4)注释

(5)Shell种类

(6)切换系统Shell

2、给Shell脚本文件加上可执行权限

3、执行(三种执行方式)

(1)./test.sh

(2)bash test.sh

(3). test.sh

二、变量分类

1、用户自定义变量

2、Linux环境变量

3、特殊变量

三、用户自定义变量

1、定义变量

2、引用变量

3、清除变量

四、Linux环境变量

1、查看环境变量

(1)env命令

(2)echo命令

2、常用的环境变量

(1)PATH

(2)HOME

3、设置环境变量

(1)设置系统环境变量

(2)设置用户环境变量

五、特殊变量

1、$#

2、$*

3、$n

4、$?

六、条件判断

1、基本语法

(1)test condition

(2)[ condition ]

2、常用判断条件

(1)比较两个整数的大小

(2)判断文件权限

(3)判断文件类型

(4)多条件判断

七、流程控制

1、if语句

2、case语句

3、for语句

4、while语句

八、read读取输入

1、格式

(1)选项

(2)参数


一、Shell脚本初识

1、编写Shell脚本文件test.sh

(1)Shell脚本文件命名

文件名.sh     

.sh是linux下bash shell的默认后缀。

(2)Shell脚本文件第一行

文件第一行必须为:#!/bin/bash

#!用来声明脚本由什么shell解析

(3)查看自己的linux系统的默认解析器

终端输入命令:echo $SHELL

(4)注释

单个"#"号代表注释当前行

(5)Shell种类

Linux中默认的shell是 bash。其他流行的shell包括:sh(UNIX 上的标准 shell)、ash、ksh、csh、tcsh(csh的增强版)、zsh等。

(6)切换系统Shell

从bash切换到csh: 在命令行输入csh。

从csh切换到bash: 在命令行输入bash。

bash和csh在语法或功能上存在差异,本文内容均是基于bash编写的,所以部分内容不适用于csh。

2、给Shell脚本文件加上可执行权限

chmod +x test.sh

3、执行(三种执行方式)

(1)./test.sh

先按照test.sh中#!指定的解析器解析,如果指定的解析器不存在,则使用系统默认的解析器。

(2)bash test.sh

先用bash解析器解析,如果bash解析器不存在,则使用系统默认的解析器。

(3). test.sh

直接使用系统默认的解析器解析,即不会执行第一行的#!指定的解析器。

二、变量分类

1、用户自定义变量

2、Linux环境变量

3、特殊变量

三、用户自定义变量

1、定义变量

变量名=变量值。注:=前后不能有空格

2、引用变量

$变量名

3、清除变量

unset 变量名

四、Linux环境变量

1、查看环境变量

(1)env命令

env命令可以查看当前用户全部的环境变量。

(2)echo命令

命令格式:echo $环境变量名

echo命令的选项-n:表示输出文字后不换行

2、常用的环境变量

(1)PATH

PATH指明了可执行程序的搜索目录。可执行程序包括Linux系统命令和用户的应用程序。

(2)HOME

HOME指明了用户家目录。

3、设置环境变量

(1)设置系统环境变量

系统环境变量是公共的,对全部的用户都生效。

(2)设置用户环境变量

用户环境变量是用户私有的、自定义的个性化设置,只对该用户生效。

针对bash的用户环境变量可在~/目录下的.bashrc文件和.bashrc_profile文件中配置;针对csh的用户环境变量可在~/目录下的.cshrc.user文件中配置。

相关的配置方法可参考https://blog.csdn.net/qq_42922513/article/details/130767986

五、特殊变量

1、$#

传给Shell脚本参数的数量;

2、$*

传给Shell脚本参数的内容;

3、$n

$1, $2, $3,等等。指运行Shell脚本时传递的参数;传递参数时需要用空格隔开;

4、$?

最后一次执行命令的返回状态。如果上一个命令正确执行,这个变量的值为0;如果上一个命令执行不正确,这个变量的值为非0(具体是哪个数,由命令本身决定)。

六、条件判断

1、基本语法

(1)test condition

举例:test $a = hello

(2)[ condition ]

condition前后要有空格。举例:[ $a = hello ]

2、常用判断条件

(1)比较两个整数的大小

-eq:等于(equal);

-ne:不等于(not equal);

-lt:小于(less than);

-le:小于等于(less equal);

-gt:大于(greater than);

-ge:大于等于(greater equal);

(2)判断文件权限

-r:有可读权限(read);

-w:有可写权限(write);

-x:有可执行权限(execute);

(3)判断文件类型

-e:文件存在(existence);

-f:文件存在且是一个常规的文件(file);

-d:文件存在且是一个目录(directory);

(4)多条件判断

&&:前一个命令执行成功时,才执行后一条命令,不能在 [] 中使用;
||:前一个命令执行失败时,才执行下一条命令,不能在 [] 中使用;
-a:即all,功能同&&,示例:[ $age -gt 18 -a $age -lt 35 ];
-o:即or,功能同||,示例:[ $age -gt 18 -o $age -lt 35 ];

[ … ] && … || … 其实就是if…else…语句。

七、流程控制

1、if语句

#if语句格式
if [ 条件判断式 ];then  #若将多个命令在一行书写,用分号“;” 将各命令隔开
    程序
elif [ 条件判断式 ]
then
    程序
else
    程序
fi

2、case语句

#case语句
case $变量名 in   #case行尾必须为单词"in"
“值1”)            #每个模式必须以右括号“)”结束
    程序1
;;               #双分号“;;”表示命令序列结束
“值2”)
    程序2
;;
“值3”)
    程序3
;;
*)              #*)表示默认模式
    默认程序
;;
esac

3、for语句

#for语句

for (( 初始值; 循环控制条件; 变量变化)) #双小括号(( ))中就可以直接使用数学中的运算表达式,如:<=
do
    程序
done

4、while语句

#while语句

while [ 条件表达式 ]
do
    程序
done

 

八、read读取输入

1、格式

read (选项)(参数)

(1)选项

-p:指定读取值时的提示符

-t:读取超时时间(超时退出)

(2)参数

变量:指定接收读取值的变量名

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值