【博学谷学习记录】超强总结,用心分享 | 狂野大数据shell脚本个人学习&复习记录—PART-03

shell脚本个人学习&复习记录——PATR-01

shell脚本个人学习&复习记录——PATR-02


Shell的函数

function可以不用写  ()中不能放任何东西

#定义函数——没有参数,没有返回值
function func1(){
    echo "hello world"
}
#调用函数
func1

#定义函数——有参数,没有返回值
function func2(){
    echo "hello world_$1_$2"   #这里的引用是调用函数的参数,非脚本参数
}
#调用函数
func2 aaa bbb


#定义函数——有参数,有返回值
function func3(){
    sum=$[$1+$2]  #或者 let sum=$1+$2
    echo $sum
}
#调用函数
res=$(func3 10 20)
echo $res


#状态码,0~255,既可以作为状态判断,也可以作为信号传递
func4(){
    echo "hello"
    return 1
}
ret=$(func4)
echo #?    #输出上一条命令的状态码1(函数体中的echo命令)
echo $ret
echo #?    #输出echo $ret的状态码0



数组

#!/bin/bash
#数组定义
arr=("hello" "java" "shell")
#访问数组元素
echo ${arr[3]}
#将数组元素转为字符串输出
echo ${arr[*]}
#获取数组长度
echo ${#arr[*]}
#遍历数组
for var in ${arr[*]}
do
    echo $var
done
#遍历数组
len=${#arr[*]}
for ((i=0;i<len;i++))
do
    echo ${arr[$i]}
done


shell的select语句

#案例
#!/bin/bash
echo "选择你喜欢的操作系统"
PS3="请输入你的选择:"
select var in "Linux" "Mac" "Windows" "Other"
do
        break   #跳出select循环
done
echo "你选择了:$var"


#select和case的结合,模拟一键启停操作
#!/bin/bash
echo "你要进行什么操作?"
PS3="请输入你的操作编号:"
select var in "启动" "停止" "重启"
do
    case $var in
    "启动")
        echo "正在执行启动的命令。。。"
    ;;
    "停止")
        echo "正在执行停止的命令。。。"
    ;;
    "重启")
        echo "正在执行重启的命令。。。"
    ;;
    esac
    break
done
sleep 3
echo "$var 执行完毕"

shell脚本之间的调用(bbb.sh导入aaa.sh)

脚本aaa.sh


#!/bin/bash
MAX_VALUE=999
STR="Guangdong/Guangzhou"
func1(){
    echo "这是aaa脚本的函数"
}

脚本bbb.sh

#!/bin/bash
#导入脚本aaa
. /export/shell/test/aaa.sh    #方式一
#source /export/shell/test/aaa.sh    #方式二,选择其中一个就行,这里选一把二注释
#使用脚本aaa的定义
echo $MAX_VALUE
echo $STR
func1
#相当于将aaa的内容直接复制到bbb上

注:如果导入的脚本,有重名的函数和变量,回忆最后一次导入的函数和变量为主

一键安装JavaJDK脚本,jdk_install.sh

#!/bin/bash
#提示开始安装
echo "现在开始安装JDK"
sleep 1  #休眠一秒

#删除centos自带的jdk
oldjdks=$(rpm -qa | grep java)
for old in ${oldjdks}
do
        rpm -e --nodeps $old  #循环删除含有jdk字样的文件
done

#创建安装目录/export/server,进入安装目录
java_path="/export/server"
if test ! -d $java_path;then
        mkdir -p $java_path
fi

#解压jdk安装包,下面是存放jdk安装的路径/export/software
tar -xvf /export/software/jdk-8u241-linux-x64.tar.gz -C $java_path

#设置环境变量
JAVA_HOME="/export/server/jdk1.8.0_241"
grep "JAVA_HOME" /etc/profile
if test $? -ne 0;then
        echo "export JAVA_HOME=/export/server/jdk1.8.0_241" >> /etc/profile
        echo "export PATH=:$JAVA_HOME/bin:$PATH" >> /etc/profile
fi

#加载环境变量
source /etc/profile

#提示用户安装成功,查看jdk安装版本
echo "恭喜,JDK安装成功"
java -version

shell的括号总结

$str        #访问变量

${str}        #访问变量

result=`ls`        #执行shell命令,并赋值

result=$(ls)        #执行shell命令,并赋值

result=$((1+2))        #执行数学运算

result=$[1+2]        #执行数学运算

str=${array[*]}        #数组转为字符串

len=${#array[*]}        #求数组长度

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值