sgg大数据--04shell

shell是一个解释器,shell脚本是一个文件可以用shell解释的。

shell脚本必须以#!/bin/bash开头。

---02---

echo就是对变量做标准的输出。

$是表示引用定义好的变量,SHELL表示是linux定义的变量。

linux中一切皆文件,这个文件就是shell可以执行的命令而已:

其中network status就是两个参数,参数是以空格区分的。

---03---

如何查看当前用户的环境变量:

---

关于sh:

所以:

---04---

写一个简单的脚本:

我的脚本的路径:

如何执行:

用./执行的时候注意要使用权限的:

还可以:

还可以:

执行方式总结:

脚本的执行可以的命令:./ --- bash --- sh --- source 

---05---

export

空格在bash里面是分隔符。

自定义变量:

(1)定义变量:变量=值,不能有空格 ,查看变量echo $变量

(2)撤销变量:unset 变量 set查看当前所有定义的变量

(3)声明静态变量:readonly变量,注意:不能unset

注意:变量的定义等号两端不能有空格。

变量定义的规则;

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

(2)等号两侧不能有空格

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

(4)变量的值如果有空格,需要使用双引号或单引号括起来。

(5)使用双引号,可以识别空格之外的其他变量,使用单引号则会只会忽略空格!

(6)使用反引号,可以将语句运行的结果作为值赋值给变量!

变量的生命周期:
        在第一次新增时产生
        变量在执行unset时,撤销,失效!
        关闭当前bash,所有定义的变量也不会存在!如何关闭当前的bash就用exit退出。

export:将变量提升为全局变量 

演示下export:

如何新开bash:

红框代表我新启动一个bash在这里执行脚本 

---06---

变量默认是字符类型。

注意: ①变量赋值时,值全部以字符串存在,无法进行运算!
		②赋值的值中有空格,需要使用引号引起来
			单引号: 不能识别$等特殊字符,不能脱义
			双引号:  可以脱义$
		③``,作用是将引号中的命令执行的结果赋值给变量
			`命令` 等价于 $(命令)

 ---07---

特殊变量:

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

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

$*、$@

$?

特殊的变量:

脚本:

#!/bin/bash

echo "$0 $1 $2 $3"

echo "$#" 参数个数

echo "$@" 参数列表

echo "$*" 参数列表

执行结果


$?:其中0是成功,其他的不是成功的。

 ---09---

关于运算:

(1)“$((运算式))”或“$[运算式]”

测试:

运算:

---10---

expr

案例:

---11---

条件判断

=:在判断里面只能用于字符串的比较

条件判断符。空格是中括号的左右两侧有空格,判断的符号还是有空格的。

1=0这里认为是字符串。

等号是字符串的比较

---12---

脚本:

#!/bin/bash
#判断用户输入参数是否为1
if [ $1 -eq 1]
then 
      echo 用户输入的参数是否是1
      elif [ $1 -eq 2 ]
then 
      echo 用户输入的参数是2
      elif [ $1 -eq 3 ]
then 
      echo 用户输入的参数是3
else
      echo 用户输入的不是1,2,3
fi

也可以是这样写的

---13---

case

脚本:

#!/bin/bash
#用户输入的参数
case $1 in
gust)
    echo "欢迎光临!" ;;
admin)
    echo "欢迎管理员" ;;
*)
    echo 不欢迎 ;;
esac

注意字符串有空格加引号,没有空格不加引号。

---14---

脚本:

#!/bin/bash
sum=0
for((i=1;i<=100;i++))
do
  sum=$[$i+$sum]
done
echo 1-100之间的和是:$sum

---15---

foreach

三个人都是个好人

---16---

再次实验:

带了双引号则*为全部的参数作为整体 不带就是一样的


4.特殊变量
	$?:  上一条命令的返回值!在bash中,如果返回值为0,代表上一条命令执行成功!
	$#:  参数个数
	$*:  参数列表。 在使用 "$*"时,将整个参数列表作为一个元素!
	$@:	 参数列表
	$0-n: $0:脚本名
			$1-$n: 第n个参数
					获取第10以上的参数,${n}

---17---

while

Shell let命令:对整数进行数学运算

---18---

关于read

---19---

返回的是最后一个路径斜杠之前的路径

---20---

 ---21---

关于${}:

函数:

#!/bin/bash
function add(){
   result=$[$1+$2]
   echo 两数之和为$result
   return
}

具体写法:

---22---

awk:

---27---

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值