[Shell]尚硅谷大数据技术之Shell--笔记(1)

概述

Shell是一个命令行解释器,它接受应用程序/用户命令,然后调用操作系统内核。

Shell解析器

(1)Linux中提供的shell解析器

常用的是sh,bash

(2)bash和sh的关系

sh是软链接到bash,执行sh命令时,实际是执行的bash命令

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

 

 Shell脚本入门

1、脚本格式

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

2、第一个shell脚本

(1)需求:

创建一个Shell脚本,输出Hello,World!

  (2)   实操:

创建文件

$ touch helloworld.sh

编写文件

$ vi helloworld.sh
#!/bin/bash
echo "Hello,world!"

第一种:执行文件,本质是bash解析器帮你执行脚本

$ bash helloworld.sh 

  

 第二种:执行文件,本质是脚本需自己执行,所以需要执行权限

$ ll  #查看文件权限
total 1
-rw-r--r-- 1  rsgeno 32 Dec 10 17:14 helloworld.sh
$ chmod 777 helloworld.sh #修改文件权限
$ ./helloworld.sh #执行文件
Hello,world!
$ ll #再次查看文件权限
total 1
-rwxrwxrwx 1  rsgeno 32 Dec 10 17:14 helloworld.sh

2、第二个Shell脚本:多命令处理

(1)需求:

在/home/username/shell目录下创建一个banzhang.txt,在bangzhang.txt文件中增加“I love cls"

(2)实操:

$ touch test5.sh
$ vi test5.sh 
$ bash test5.sh 
#!/bin/bash
cd /home/yuanjiao/shell

touch bangzhang.txt
echo "I love cls" >>bangzhang.txt

补充:

使用>,执行命令时,如果不存在,会新生成一个>后面的文件,如果存在,则会重写文件

使用>>,执行命令时,如果不存在,会新生成一个>>后面的文件,如果存在,则会在文件后追加

Shell中的变量

1、系统变量

常用的系统变量:$HOME,$PWD,$SHELL,$USER

2、自定义变量

(1)基本语法

a、定义变量,等号两边不能有空格!!!

$ A=1

 b、撤销变量

$ unset A

c、声明静态变量,不能被unset

$ readonly A=2

d、把变量提升为全局环境变量,可供其他Shell程序使用

$ export 变量名

(2)变量定义规则

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

b、等号两边不能有空格

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

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

3、特殊变量:$n

1、基本语法

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

2、案例实操

$ touch parameter.sh
$ vi parameter.sh
#!/bin/bash
echo "$0 $1 $2"
$ bash parameter.sh 
parameter.sh
$ bash parameter.sh I study shell
parameter.sh I study

4、特殊变量:$#

1、基本语法

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

2、案例实操

$ vi parameter.sh 
#!/bin/bash
echo "$0 $1 $2"
echo $#
$ bash parameter.sh I study shell
parameter.sh I study
3

5、特殊变量:$*、$@

1、基本语法

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

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

后面有例子列举出他们的区别

2、案例实操

#!/bin/bash
echo "$0 $1 $2"
echo $#
echo $*
echo $@
$ bash parameter.sh I want to study shell very well
parameter.sh I want
7
I want to study shell very well
I want to study shell very well

6、特殊变量:$?

1、基本语法

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

2、案例实操

(1)判断helloworld.sh脚本是否正确执行。

$ bash helloworld.sh
Hello,world!
555
$ echo $?
0

运算符

1、基本语法

(1)"$((运算式))"或"$[运算式]"

(2)expr +,-,*,\*,/,% 加,减,乘,除

注意:expr运算符间要有空格

2、案例实操

(1)计算3+2的值

$ expr 3 + 2
5

(2)计算3-2的值

$ expr 3 - 2
1

(3)计算(2+3)x4的值

$ expr `expr 3 + 2` \* 4
20
$ s=$[(2+3)*4]
20

补充:反引号``,首先执行反引号内的内容

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值