shell基础教程

2023-05-16

!/bin/bash


# 1.判断传入的参数
if [ ! -n "$1" ]
then
    echo "you have not input a word!"
elif [ "$1" == 1 ]
then
    echo "the word you input is $1"
fi






# 2.判断shell内的参数
a=10
b=20
if [ $a == $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
elif [ $a -lt $b ]
then
   echo "a 小于 b"
else
   echo "没有符合的条件"
fi





# 3. if then else
num1=$[2*3]
num2=$[1+5]
if test $[num1] -eq $[num2]
then
    echo '两个数字相等!'
else
    echo '两个数字不相等!'
fi






# 4。 for 循环
for var in item1 item2 itemN
do
  echo $var
done








# 5.顺序输出字符串中的字符:
for str in This is a string
do
    echo $str
done




#回数字 1 到 5,然后终止。
int=1
while(( $int<=5 ))
do
    echo $int
    let "int++"
done




# until 循环
a=0

until [ ! $a -lt 10 ]
do
   echo $a
   a=`expr $a + 1`
done




# case ... esac
echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac



# 循环
for((i=1;i<=5;i++));do
    echo "这是第 $i 次调用";
done;




if [ $1 -gt 2 ]
then
    echo "is bigger then 2"
else if [ $1 -lt 2 ]
then
    echo "$1 is less then 2"
else
    echo " "
fi



# 判断传入参数大小
if [ $1 = 1 ]
then
    echo " $1  ==  1"
elif [ $1 -ge 2 ]
then
    echo "$1 >= 2"
fi





# 定义带参数的 shell函数
funWithParam(){
  if [ $1 -le 5 ]
  then
      echo " $1  <=  5"
  elif [ $1 -le 10 ]
  then
      echo " 5  <  $1 <= 10"
  else
      echo "$1 > 10 "
  fi
}

# 开始调用(从外面传入一个参数)
funWithParam $1




# 定义带参数的 shell函数
function funWithParam(){
  if [ $1 -le 5 ];then
      echo " $1  <=  5"
  elif [ $1 -le 10 ];then
      echo " 5  <  $1 <= 10"
  else
      echo " $1 > 10 "
  fi
}

# 判断执行情况:我们可以指定 1 表示文件不存在,2 表示文件没有读取权限,3 表示文件类型不对。
function existStatus() {
  if [ $1 -eq 0 ]; then
      echo 'Successful,0 erros 0 warning!'
  elif [ $1 -eq 1 ]; then
      echo '文件不存在!'
  elif [ $1 -eq 2 ]; then
      echo '文件没有读取权限!'
  elif [ $1 -eq 3 ]; then
      echo '文件类型不对!'
  else
    echo '其他错误类型!'
  fi
}

# 开始调用(遍历传入的参数)
for par in $*;
  do
      funWithParam $par;
  done

# 查看代码运行是否有错误(显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。)
existStatus $?









# 定义带参数的 shell函数
function funWithParam(){
  if [ $1 -le 5 ];then
      echo " $1  <=  5"
  elif [ $1 -le 10 ];then
      echo " 5  <  $1 <= 10"
  else
      echo " $1 > 10 "
  fi
}

# 判断执行情况:我们可以指定 1 表示文件不存在,2 表示文件没有读取权限,3 表示文件类型不对。
function existStatus() {
  case $1 in
  0){
    echo 'Successful,0 erros 0 warning!'
  };;
  1){
    echo echo '文件不存在!'
  };;
  2){
    echo echo '文件没有读取权限!'
  };;
  3){
    echo echo '文件类型不对!'
  };;
  *){
    echo '其他错误类型!'
  };;
  esac
}


# 开始调用(遍历传入的参数)
for par in $*;
  do
      funWithParam $par;
  done

# 查看代码运行是否有错误(显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。)
existStatus $?




#判断用户输入
read -p "Please choose yes/no: " -t 30 cho
#在屏幕上输出"请选择yes/no",然后把用户选择赋予变量cho
case $cho in
#判断变量cho的值
    "yes")
    #如果是yes
        echo "Your choose is yes!"
        #则执行程序1
        ;;
    "no")
    #如果是no
        echo "Your choose is no!"
        #则执行程序2
        ;;
    *)
    #如果既不是yes,也不是no
    echo "Your choose is error!"
    #则执行此程序
    ;;
esac



printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876






# read -P echo -e
read -p "Please input your first name": firstname   #读取命令前,有提示消息
read -p "please input your last name": lastname
echo -e "Your full name is $firstname$lastname"   #使用 -e 参数 可以激活转义字符
exit 0

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell基础教程 的相关文章

  • 重拾Hibernate框架——实体类、主键生成策略、session绑定本地线程

    目录 目录实体类持久化类的编写规则Hibernate主键生成策略实体类操作 案例准备对实体类CRUD操作 添加操作查询操作修改操作删除操作saveOrUpdate方法 实体类对象状态Hibernate一级缓存Hibernate事务操作 规范
  • 重拾Hibernate框架——一对多关联

    目录 目录前言一对多映射配置 创建实体类让两个实体类之间相互表示配置映射关系配置核心配置文件Hibernate工具类 一对多关联操作 级联保存级联删除修改操作 inverse属性 前言 这里将以公司和员工为例 xff0c 其中公司与员工是一
  • Visual C++2010学习版详细安装教程

    获取该资源花了本人很长时间 xff0c 为了你们需要VC2010系列的编程软件更容易 xff0c 本人把我找到VC2010系列安装包放在了我的百度网盘分享 xff0c 该资源来之不易 xff0c 请广大朋友们好好珍惜 xff01 由于我换了
  • 重拾Hibernate框架——多对多关联

    目录 目录前言多对多映射配置 创建实体类让两个实体类之间相互表示配置映射关系配置核心配置文件Hibernate工具类 多对多关联操作 级联保存级联删除一般不使用 维护第三张表关系 前言 这里将以用户和角色为例 xff0c 其中用户与角色是多
  • 重拾Hibernate框架——查询操作

    目录 目录前言OID查询对象导航查询HQL查询 查询所有条件查询排序查询分页查询投影查询聚合函数的使用 QBC查询 查询所有条件查询 Restrictions类的常用方法 排序查询 Order类的常用方法 分页查询统计查询 Projecti
  • Struts2框架自学之路——结果页面的配置

    目录 目录Struts2中结果页面的配置 全局结果页面局部结果页面result标签的type属性 Struts2中结果页面的配置 在struts xml核心配置文件中 xff0c 我们可以配置Action类的URL访问路径 xff0c 以及
  • Struts2框架自学之路——Action获取表单数据的方式以及表单数据的封装

    目录 目录Action获取表单数据的方式 通过ActionContext类获取使用ServletActionContext类获取通过特定接口访问在Action中操作域对象 Action中原始方式封装表单数据Struts2中表单数据的封装 属
  • Struts2框架自学之路——值栈

    目录 目录Servlet和Action的区别什么是值栈获取值栈对象值栈的内部结构向值栈存放数据 向值栈存放对象向值栈存放List集合 从值栈获取数据 获取字符串获取对象获取List集合其他操作 EL表达式获取值栈数据 Servlet和Act
  • Struts2框架自学之路——拦截器

    目录 目录Struts2拦截器概述重要知识点自定义拦截器 拦截器的结构自定义登录拦截器 创建登录访问的首页登录页面以及登录操作添加登录拦截器功能 Struts2拦截器概述 Struts2框架封装了很多功能 xff0c 而这些功能大多在拦截器
  • Linux简介及系统安装

    目录 目录Linux简介 Linux的应用Linux与Windows的不同字符界面的优势 Linux系统安装 VMware简介虚拟机的新建与设置注意点Linux的系统分区安装Linux系统Linux系统的安装日志 Linux简介 Linux
  • Linux常用命令

    目录 目录命令基本格式文件处理命令 目录或文件处理Linux中常见目录链接命令 搜索命令 文件搜索命令命令搜索命令字符串搜索命令find命令与grep命令的区别 帮助命令压缩与解压缩命令关机和重启命令其他常用命令 挂载命令用户登录查看和用户
  • 对php-fpm的理解重述

    目录 目录CGI的出现FastCGIphp fpm摘录 FPM的请求处理流程nginx转发请求给FPM 参考 CGI的出现 早期的Web服务器只能处理HTML等静态文件 xff0c 随着PHP等动态语言的出现 xff0c Web Serve
  • Shell编程——基础入门

    目录 目录Shell概述 Shell是什么Shell的分类 脚本执行方式 echo输出命令第一个脚本 Bash的基本功能 命令别名与快捷键历史命令 history命令历史命令的调用命令与文件补全 输入输出重定向 输出重定向输入重定向 多命令
  • Linux命令之<cp命令>

    cp命令用来复制文件或者目录 xff0c 是Linux系统中最常用的命令之一 一般情况下 xff0c shell会设置一个别名 xff0c 在命令行下复制文件时 xff0c 如果目标文件已经存在 xff0c 就会询问是否覆盖 xff0c 不
  • PHPer的进阶探索之旅

    目录 目录前言魔术常量PHP常量详解define和const的区别PHP中的闭包PSR 规范PHP命令空间Web性能优化与HTTP2 前言 作为一个PHPer xff0c 一直认为Java与PHP都 差不多 xff0c 尽管身边的人会说大型
  • Linux下的VIM编辑器

    目录 目录VIM编辑器的概述VIM编辑器的操作模式vim命令的使用操作模式的命令 底行模式的常用指令命令模式的常用指令VIM键位指令图 VIM编辑器的概述 VIM其实VI编辑器的升级版本 VIM相对于VI xff0c 增强的功能 xff1a
  • Linux中的磁盘管理

    目录 目录磁盘管理命令向服务器添加硬盘磁盘分区 分区模式之MBR分区分区模式之GPT分区 分区操作 Linux中的MBR分区Linux中的GPT分区 分区格式化操作挂载分区Linux中的swap分区 磁盘管理命令 xff08 1 xff09
  • Linux中的用户管理

    目录 目录概述关于用户组的配置文件关于用户的配置文件用户和用户组的基本命令 用户组操作用户操作 用户和用户组的进阶命令 主要组与附属组 其他命令 概述 使用操作系统的人 xff0c 我们称之为用户 在Linux中允许多个不同用户同时登录同一
  • Linux中的计划任务Crontab

    目录 目录介绍安装并检查Crontab服务入门栗子Crontab的基本组成 用户任务调度 crontab命令的使用及相关文件Crontab的任务配置格式 系统任务调度系统级任务调度与用户级任务调度 注意事项参考 介绍 Crontab是什么
  • MySQL易忘常用的知识点

    目录 目录前言WHEREDISTINCTGROUP BYSELECT语句完整的执行顺序NOT NULLNULL和default默认值MySQL中文字节问题关于MYSQL Incorrect string value参考 前言 这里介绍MyS

随机推荐

  • MySQL深度掌握之路

    目录 目录前言知识点 前言 知识点 MySQL要求AUTO INCREMENT列必须有某种索引 xff0c 如果没有索引 xff0c 那么表的定义就是不合法的 任何一个PRIMARY KEY列必须是NOT NULL的 如果定义没有设置为NO
  • Linux中Web环境的搭建LNMP

    目录 目录环境搭建准备 为Linux创建后续使用的用户XShell的上传下载上传安装包 Web服务器的搭建 目录的创建php fpm编译安装 安装GCC安装libxml2和libxml2 devel包安装BZip2包安装libcurl包安装
  • 微信第三方小程序授权开发之旅

    目录 目录开发准备开发流程注意事项 开发准备 授权方AppId第三方AppId 开发流程 注意事项 开发过程中 xff0c 处于测试阶段 xff08 未全网发布 xff09 xff0c 需要在微信第三方平台中设置授权测试公众号列表 xff0
  • Linux中的网络管理——计算机网络基础

    目录 目录OSI七层网络模型TCPIP协议四层模型OSI模型与TCPIP模型的比较IP地址 IP地址分类子网掩码 端口DNS DNS服务域名DNS查询 DNS查询过程DNS查询类型 网关 OSI七层网络模型 ISO OSI七层模型 需要说明
  • 在MySQL中使用MD5加密【入门体验】

    什么是MD5 xff1f MD5信息摘要算法 英语 MD5 Message Digest Agorithm xff0c 一种被广泛使用的密码散列函数 xff0c 可以产生出一个128位 16字节 的散列值 hash value xff0c
  • Linux中Web环境memcached和redis安装(FOR PHP)

    目录 目录前言php memcached扩展安装 服务器端安装客户端安装设置memcached开机自启脚本 创建脚本设置服务服务命令 php redis扩展安装 redis安装服务命令开放redis端口redis手动安装 修改redis配置
  • Linux中Web环境安装php的扩展

    目录 文章目录 目录前言安装imagick扩展安装ImageMagick安装php扩展imagick 安装PDO扩展安装PDO组件安装PDO MYSQL组件 前言 继上文 Linux中Web环境memcached和redis安装 xff08
  • Maven项目构建工具的入门使用

    目录 目录前言Maven的介绍及环境搭建创建Maven项目Maven的常用命令自动创建目录骨架Maven中的坐标和仓库 坐标仓库 关于仓库的介绍更改本地仓库的位置 Maven的生命周期和插件 生命周期插件 pom xml常见元素介绍Mave
  • Spring框架自学之路——AOP

    目录 目录AOP 介绍AOP底层原理核心概念 基于AspectJ的Spring AOP操作 AOP操作准备XML方式定义切点案例扩展注解方式 AOP 介绍 AOP xff0c 即面向切面编程 xff0c 简单来说其思想指的是在不修改原有代码
  • Spring框架自学之路——JdbcTemplate

    目录 目录介绍使用JdbcTemplate 准备工作添加操作更新操作删除操作查询操作 返回一个值返回对象 xff08 返回一行数据 xff09 返回List集合 xff08 返回多行数据 xff09 Spring配置c3p0连接池 c3p0
  • Spring框架自学之路——事务管理

    目录 目录前言介绍案例说明案例准备及问题分析声明式事务管理 事务管理器基于XML配置声明式事务 XML配置事务配置说明 基于注解实现声明式事务 注解配置 64 Transactional注意事项 知识点扩展或参考 前言 文中主要介绍的是Sp
  • MyBatis框架自学之路——简易入门

    目录 目录介绍入门案例 准备工作MyBatis的CURD MyBatis框架的基本原理使用MyBatis的工具类测试类查询操作 根据用户ID查询对应的用户记录根据用户名查询一条或多条用户记录 添加操作 自增主键的返回非自增主键的返回 删除操
  • 今日大家一起来学MySQL的存储引擎和锁机制

    目录 文章目录 目录前言MySQL常用的存储引擎MyISAMInnoDBMyISAM和InnoDB的对比 讲一下让人敬畏的锁机制MySQL中的锁MyISAM的表锁案例分析 MyISAM的并发插入案例分析 MyISAM的并发调度InnoDB中
  • ubuntu18.04 密码正确但是进不去系统图形化界面

    ubuntu18 04 密码正确但是进不去系统图形化界面 卸载原有的驱动 ALT 43 CTRL 43 F2进 命令 模式 xff1a 卸载英伟达驱动并重启 sudo apt get remove purge nvidia sudo apt
  • mysql json table

    SELECT FROM zichaxun t1 inner join JSON TABLE CONCAT 39 34 39 REPLACE 39 1 2 39 39 39 39 34 34 39 39 34 39 34 34 COLUMNS
  • oc的MRC和ARC的区别

    import 34 ViewController h 34 64 interface ViewController 64 end 64 implementation ViewController void viewDidLoad super
  • windows server2016忘记密码,windows重置密码,windows破解密码,win10忘记密码,win10破解密码,windows server2016破解密码

    1 首先设置光盘启动 xff08 如果是虚拟机 xff0c 比如vm xff0c 首先重置虚拟机 xff0c 然后启动的时候进入bois xff0c 设置光盘启动 xff09 xff0c 总之先进入boot manager xff0c 设置
  • linux中单箭头代表会覆盖,双箭头就是如果存在会追加

    如果这样每次重启的时候都会覆盖以前的日志 xff0c 产生最新的日志 nohup bin yanagishima start sh gt y log 2 gt amp 1 amp 如果这样每次启动不会覆盖原来的老日志 xff0c 日志会接着
  • hive中order by,sort by, distribute by, cluster by作用以及用法

    转载自 xff1a https blog csdn net zhanglh046 article details 78572939 utm medium 61 distribute pc relevant none task blog ba
  • shell基础教程

    bin bash 1 判断传入的参数 if n 34 1 34 then echo 34 you have not input a word 34 elif 34 1 34 61 61 1 then echo 34 the word you