[Shell]尚硅谷大数据技术之Shell--笔记(1)
shell语言学习
概述
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)