Shell编程基础常用代码2

Shell编程

注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase Hive Flume等等~写的都是纯干货,各种顶会的论文解读,一起进步。
今天继续和大家分享一下Shell编程
#博学谷IT学习技术支持



前言

在这里插入图片描述
今天继续和大家分享Shell编程基础常用代码2,函数,数组,select语句和几个综合案例


一、Shell的函数

在这里插入图片描述

#----定义1:没有参数,没有返回值-----------
function func1(){
 echo "Hello World"
}

调用函数:
 func1
 
 
#----定义2:有参数,没有返回值-----------
function func2(){
 echo "Hello World--$1--$2"  #这里的$1和$2是向函数传入的参数
 return 88
}

调用函数:
 func2 aaa bbb

#----定义3:有参数,有返回值-----------
func3(){
 sum=$[$1+$2]
 echo $sum   #shell的函数的返回值必须通过echo返回
}

调用函数:
result=$(func3 10 20)
echo "result=$result"

总结:
1、如果单独调用函数,则函数内部的echo会直接输出到控制台
func3
2、如果想要有返回值,则函数内部一般只写一个echo
result = $(func3 10 20)

二、Shell的数组

#!/bin/bash

#1-数据的定义

array=("hello" "java"  "mysql" "shell" "linux")

#2-访问数据元素
echo ${array[3]} #shell

#3-将数组所有元素转为字符串输出

echo ${array[*]}

#4-获取数组的长度 
echo ${#array[*]}

#5-遍历数组-方式1
echo "----------方式1-------------"

for str in ${array[*]}
do
 echo $str
done

echo "----------方式2-------------"
len=${#array[*]}

for((i=0;i<len;i++))
do
  echo ${array[$i]}
done

三、Shell的select语句


#----案例1-----------
echo "你要进行什么操作"
PS3="请输入你选择:"
select var in "启动" "停止" "重启"
do
 case $var in 
 "启动")
   echo  "启动"
 ;;
 "停止")
   echo "停止"
 ;;
  "重启")
   echo "重启"
 esac
break
done

echo "$var 操作"

#----案例2-----------
#!/bin/bash
echo "你想学习什么语言?"
PS3="请输入你的选择:"    # 设置提示字符串
select var in java c++ shell python
do
  case $var in
     "java")
       echo "恭喜你选择成功.java最牛"
     ;;
     "c++")
       echo "驱动开发  网络优化  go 语言"
     ;;
     "shell")
       echo "运维必会"
     ;;
     "python")
       echo "人工智能"
     esac
     break    # 如果这里没有break 将会进行无限循环
done
echo "你选择的是:$var"

四、Shell的脚本调入

1、编写func1.sh
#!/bin/bash

MAX_VALUE=2147483648
  R="Asia/beijing"

func1(){
 echo "我是func2.sh中的func1函数!"
}
2、编写func2.sh
#!/bin/bash

MAX_VALUE=2147483648
STR="Asia/beijing"

func1(){
 echo "我是func2.sh中的func1函数!"
}


3、编写a.sh,导入func1.sh和func2.sh
#!/bin/bash

#1-导入shell脚本
#方式1
. /export/shell/test/func1.sh
. /export/shell/test/func2.sh

#方式2
#source  /export/shell/test/func.sh

#2-使用脚本中内容
echo $MAX_VALUE
echo $STR 

func1

五、Shell的综合案例

案例1-猜字游戏
#!/bin/bash
#生成100以内的随机数 提示用户猜测 猜对为止
#random 系统自带,值为0-32767任意数
#随机数1-100
num=$[RANDOM%100+1]
#read 提示用户猜数字
#if判断
#!/bin/bash
num=$[RANDOM%100+1]
while true
do
 read -p "计算机生成了一个 1‐100 的随机数,你猜:" cai
 if [ $num -gt $cai ];then
   echo "猜小了"
 elif [ $num -lt $cai ];then
   echo "猜大了"
 else
   echo "猜对了"
   break
 fi
done

案例2-一键安装jdk
#!/bin/bash
# 1.提示安装jdk
echo "现在开始安装jdk"
sleep 1     # 休眠1秒钟
# 2.删除centos自带的jdk
oldjava=$(rpm -qa | grep java )
for old in ${oldjava}
do
   # echo $old
   rpm -e --nodeps $old
done
# 3.创建安装目录/export/server, 进入安装目录

java_path="/export/server"

if [ ! -d $java_path  ]
then
   mkdir -p $java_path
fi

#4:解压jdk安装包
tar -xvf /export/software/jdk-8u241-linux-x64.tar.gz  -C  $java_path

# 6.设置环境变量
JAVA_HOME="/export/server/jdk1.8.0_241"

grep "JAVA_HOME" /etc/profile
if [ $? -ne 0 ]
then
  # JAVA_HOME
  echo "--------------JAVA_HOME------------------"
  echo 'export JAVA_HOME=/export/server/jdk1.8.0_241' >> /etc/profile
  # PATH
  echo "--------------PATH------------------------"
  echo 'export PATH=:$JAVA_HOME/bin:$PATH' >> /etc/profile
fi
# 7.加载环境变量
source /etc/profile
# 8.提示用户安装成功,查看jdk安装版本
echo "恭喜您,jdk安装成功!"
java -version

总结

今天和大家分享了Shell编程基础常用代码2,函数,数组,select等语法。有时间复习一下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值