shell编程练习题

article/2025/10/8 6:23:48

近来学习到linux的shell编程一块,于是学完后想练习一下。本文就是基于一道练习题来记录一下自己遇到的问题以及解决的过程。
首先看题目:编写shell脚本,要求实现如下功能:当执行一个程序的时候,这个程序会让使用者选择boy或者girl;如果使用者输入B或者b时,就显示:He is a boy;如果使用者输入G或者g时,就显示:She is a girl;如果是除了B/b/G/g以外的其他字符,就显示:I don’t know
其实是一道比较简单的题目,但是因为对shell不熟悉,语法错的还是比较多的。我首先想到的就是用if循环来实现,以下是的第一次的代码:the first time在这里插入图片描述
当然赋权限运行后就报语法错误了。这里的错误还是比较明显的几个,首先是 11 行的结尾应该是fi(这个错的真是不该) 然后就是第5 行的if 判断的时候[ ]里面的内容一定要在开头跟结尾加上空格。否则就会报这样的错误test_1.sh: line 5: [: missing]’
百度后还是报错,仔细看了看文档才发现,if中的多重判断是有固定格式的在这里插入图片描述
也就是判断逻辑或要使用 -o 选项。于是就有了接下来的脚本在这里插入图片描述
因为一个空格导致还是报错,而且还浪费了不少时间。在这里插入图片描述
原来是代码的第5行“b ” 这里多了一个空格,这个也是输入b却还是判断 i don;t know 的原因。删除空格后就就可以了。最后测试结果如下:在这里插入图片描述
虽然结果实现了,但是还有没有更简便的方法呢?
当然有了,比如用case来判断:[root@localhost sh]# cat test_1.2.sh
#!bin/bash
echo "please input your sex: boy or girl "
read a
case $a in

 G)echo "she is a girl"  ;;g)echo "she is a girl"  ;;B)echo " he is a boy"   ;;b)echo " he is a boy"   ;;*)echo i dont know  ;;

esac
注:此处echo输出的内容最好用双引号引起来(虽然官方手册说可以不用双引号,但在本系统centos 6.8 中如果不用双引号引起来的话会报错)

与上面的 if 语句相比,case语句还是简单的多了。以上的就是我在练习shell编程中遇到的问题,这篇博客也是单纯记录一下自己遇到的语法上的问题。


http://chatgpt.dhexx.cn/article/5ao1TgEv.shtml

相关文章

Shell编程三剑客

文章目录 前言grep选项 sed 工具概述基本语法常见的 sed 命令选项常见的操作 实验结合正则表达式输出符合条件的文本删除符合条件的文本替换符合条件的文本迁移符合条件的文本 使用脚本编辑文件调用变量来改文件 awk概述工作原理:选项工作原理内置变量关于数组与字符…

Shell编程【万字Shell详细介绍带你入门建议收藏】

文章目录 1 Shell 基础介绍1.1 Shell 简介Shell 概述Shell 发展史查看Shell查看系统默认安装的 Shell查看当前登录用户默认 Shell查看当前的 Shell 1.2 Shell 脚本(定义、作用、格式、权限及执行)Shell 脚本基础知识Shell 脚本的约束Shell 脚本可以完成很多任务,但不…

Linux之Shell编程详解

精心整理Shell编程的入门,并配图加代码,方便大家跟着操作,但是难免不了存在纰漏,感谢大家的指正与理解!觉的写的不错的小伙伴儿,一键三连支持一下,后期会有持续更新!!谢谢…

Linux系统的Shell编程

一. 什么是Shell 1. 在学习Shell编程之前,我们应该要先知道什么是Shell 用户、Shell、Linux内核、硬件的关系如下图: Shell是一个应用程序,也可以说是一个命令解释器,它是用户和Linux内核之间的桥梁,可以将用户在图形界…

Linux中的Shell编程

1.Shell的概念 shell是一个命令行解释器,它为客户提供了一个Linux内核发送请求一边运行程序界面系统级程序,用汉语可以通过shell启动、挂起、停止甚至编写一些程序。 shell还是一个功能强大的编程语言,易于编辑,易于调试&#xff…

Shell编程实验

实验二 Shell编程 文章目录 实验二 Shell编程一、如果当前目录下有文件f1,但是没有f2,解释命令ls f1 f2 2>ef1 1>&2的运行结果。二、使用for循环语句编写一段B-shell程序,完成显示用户注册目录下的a_sub, b_sub子目录下的所有C程序…

Shell编程入门

文章目录 1 Shell编程简介2 Shell脚本的执行方式3 Shell变量3.1 Shell变量介绍3.2 定义变量的规则3.3 将命令的返回值赋给变量(重点) 4 设置环境变量5 位置参数变量6 预定义变量7 运算符8 条件判断8.1 基本介绍8.2 if 判断8.3 case 语句 9 循环语句9.1 f…

Linux Shell编程

Linux Shell编程 一、简述 简单的介绍shell脚本的基本用法。 shell脚本是 由一些按照一定格式组合起来的shell命令 组成。shell脚本不需要编译就可以直接执行,它是边解释边执行的。 二、命令解释器 Linux系统提供多种不同的Shell以供选择。常用的有Bourne Shell&a…

Shell编程入门学习

文章目录 Shell编程Shell脚本的执行方式Shell的变量Shell的变量的介绍shell变量的定义 设置环境变量位置参数变量介绍基本语法 预定义变量基本介绍基本语法 运算符基本语法 条件判断判断语句常用判断条件 流程控制if 判断case语句for循环while循环 read读取控制台输入基本语法 …

shell编程

文章目录 一、shell简介二、shell脚本的执行方式三、shell变量3.1 shell变量介绍3.2 shell变量的定义3.2.1 基本语法3.2.2 定义变量的规则3.2.3 将命令的返回值赋予变量 四、环境变量的设置五、位置参数变量5.1 基本介绍5.2 基本语法 六、预定义变量6.1 基本介绍6.2 基本语法 七…

shell编程入门(一天掌握shell编程)

一、背景 到新公司之后,发现好多地方需要使用shell来编写一些简单的程序来提升自己的工作效率,因此专门B站上查看视频(尚硅谷的视频),在这里学习总结下shell编程。 二、shell概述 shell是一个命令行解释器&#xff…

Linux【实操篇】—— Shell 编程入门、变量、运算符、条件判断、流程控制

目录 一、Shell 编程入门 1. 认识 Shell 2. Shell 脚本的创建与执行 二、Shell 变量 1. 系统变量和自定义变量 2. 变量的基本规则 3. 设置环境变量 4. 位置参数变量 5. 预定义变量 三、运算符 四、条件判断 五、流程控制 1. if 语句 2. case 语句 3. fo…

各大常见OJ与推荐OJ汇总(OJ题量统计)

这么长时间了 收集了不少做题的网站 在这里列一列 可以挑自己各方面都喜欢的主用 并没有什么顺序 大家择优选择 Last-Modified: 2023/3 POJ(北京大学)洛谷CowcoderLibreOJCodeforces(俄罗斯)东北大学秦皇岛分校oj51Nodhihocoder…

华为OD机试(2023A+B)在线OJ模拟

语言支持 CCJavaJavaScript(Node.js-CJS、Node.js-ESM)Python(Python3、PyPy3、Python3-Graphics)Mono C#GoRubyRustSQLHaskellBashJuliaKotlin/JVMFortranPascalPHPVerilog 用例库说明 在线OJ中的题目用例均来自本人构思&#…

在线OJ注意事项

CSDN话题挑战赛第2期 参赛话题:学习笔记 一、OJ概念 online judge,简称OJ,是一个在线的判题系统。 用户可以在线提交多种程序代码(比如:C、C、Java、Python等),系统对源代码进行编译和执行,并通过预先设计…

在线OJ系统

在线OJ系统 项目开始之前需要准备的第三方库项目分析 两大模块在线编译模块整体思路编译模块 题目管理模块数据存储页面显示服务器 项目开始之前 需要准备的第三方库 httplib g版本必须得是4.9以上 ctemplate boost: yum install boost-devel.x86_64 jsoncpp&a…

分享一个OJ平台——浙江工商大学的OJ平台

1.引言 最近是有总喜欢讨论算法题,因为他们在准备考研复试,为什么我不准备呢?这是一个悲伤的故事,刚好自己也有面试遇到只能使用C和C的代码题,他们说这OJ平台相对简单一些,那些刷不来LeetCode可以试试这个&…

算法OJ题(1)

1.删除有序数组中的重复项 原题链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/ 思路:使用双指针算法可以使时间复杂度达到O(1). 具体过程:(以画图解释) 代码实现: int remove…

你想知道刷题的秘密吗?一篇博客让你明白什么是OJ题,如何刷OJ题,并深入浅出的带你刷遍顺序表的OJ题(小白必看)

目录 0.前言 1.什么是OJ 1.1 OJ简述 1.2 OJ的分类(尤其接口型OJ,带你剖析得明明白白) 1.3 接口型OJ的输入型参数 2. 剑指 Offer 56 - I. 数组中数字出现的次数 3. 88. 合并两个有序数组 4. 27.移除元素 5. 26. 删除有序数组中的重复…

Online Judge系统(简称OJ)

什么是OJ Online Judge系统(简称OJ)是一个在线的判题系统。用户可以在线提交程序源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。 一个用户提交的程序在Online Judge系统下执行时将受到比…