首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法让bash脚本在选择案例后重新运行?

是的,可以通过使用循环结构来实现让bash脚本在选择案例后重新运行的功能。具体的实现方式可以使用while循环或者until循环。

在脚本中,可以使用一个变量来控制循环的条件,当用户选择退出时,将该变量设置为false,从而退出循环。当用户选择重新运行时,将该变量设置为true,从而重新进入循环。

下面是一个示例代码:

代码语言:txt
复制
#!/bin/bash

run=true

while $run; do
    # 显示菜单选项
    echo "请选择一个案例:"
    echo "1. 案例1"
    echo "2. 案例2"
    echo "3. 退出"

    # 读取用户输入
    read choice

    case $choice in
        1)
            # 执行案例1的代码
            echo "执行案例1"
            ;;
        2)
            # 执行案例2的代码
            echo "执行案例2"
            ;;
        3)
            # 退出循环
            run=false
            ;;
        *)
            # 输入无效选项
            echo "无效选项,请重新选择"
            ;;
    esac
done

在上面的示例中,当用户选择退出时,将变量run设置为false,从而退出循环。当用户选择重新运行时,将变量run设置为true,从而重新进入循环。

这样,用户可以在每次选择案例后决定是退出还是重新运行脚本。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1981年我TRS-80上写了一个游戏,40年,我想重新运行起来

大家变成大佬之前,估计也受过不少折磨,做过不少训练,甚至也写过一些程序(bug)。如今过去了这么长时间,有没有想过回过头来重新看看那些古早的代码,或者重新运行起来?...但细看第一行,他震惊了,这竟然是他自己写的: 1 CLS: REM BREAKER BALL CREATED AND WRITTEN BY NED UTZIG 1/1/81 FOR TRS-80 MODEL...随后好友的激励下,博主毅然决定,复活这段代码,游戏重新运行起来。 把纸质代码加载到TRS-80模拟器上 首先需要解决TRS-80的问题。...但游戏里还是有一些bug,比如会一直移动,或者无法移动时射箭。这个盒子体积太小,而且似乎也没有派上什么用场,整体更像是一个未完成的概念。这也文摘菌想起那个用bug堆出来的的马里奥视频。...通过代码实现与过去的交流 根据博主自述,尽管有时候会有不耐烦的情绪出现,但40年前的代码“死而复生”,确实是一件令人快慰的事,他也在这些旧代码中找到了自己很多年轻时的影子。

55530

shell脚本语言(超全超详细)

指定的解析器)但是第一行还是要写的 注意:windows下 写脚本 linux下执行 注意 4、变量 案例案例:读取多个值 案例只读变量: 查看环境变量:env 导出环境变量 作用:(其他...7、条件测试 7.1、文件测试 7.2、字符串测试 7.3、数值测试 7.4、符合语句测试 8、控制语句 8.1、if控制语句 案例案例:判断当前路径下有没有文件夹 有就进入创建文件 没有.../xxx.sh 或 bash xxx.sh)时会创建一个子shell解析 脚本 注意:windows下 写脚本 linux下执行 注意 执行结果: 将windows文件 转换成...: 从键盘获取值read 运行结果: 案例一行上显示和添加提示 需要加上-p 运行结果: 案例:读取多个值 运行结果: 案例只读变量: 运行结果...: 案例:判断当前路径下有没有文件夹 有就进入创建文件 没有 就创建文件夹 再进入创建文件 运行结果: 案例运行结果: 8.2、case 8.3、for循环语句

2.5K20

特别的往 Docker Container 中上传代码的技巧

最近我常常通过 Docker 服务器部署代码,容器技术是个好东西,可以你随时可以切换代码的执行环境而不需要在重新配置机器以致于搞得乱七八糟。...特别的技巧 想起了此前为了处理日志,通过 sed 和 awk 处理各种数据流的操作,脑洞一开,想到了一个直接从终端操作的简单办法。...我们只需要另外启动一个具备超级用户权限的 bash shell,就可以正常运行这段脚本了,sudo bash,或者 sudo su 都可以。...但这还需要另外多打一行命令,跑完还需要退出这个 bash,有些麻烦,有没有一条命令执行完就跑的办法呢?...想到 Python 可以利用 -c 参数,通过 python -c "需要一次性执行的Python命令" 来直接在命令行运行一些一次性完成的操作。bash 有没有这样的操作呢?

1.2K20

k8s中上线gatling镜像并在内网发送流量

我还是选择了自己最熟悉的方式,直接从官网上下载了开源版本的standalone gatling.zip,解压将目录重命名为gatling,Dockerfile如下: FROM ubuntu:18.04...再使用docker exec -it test bash 经过测试,gatling软件能够正常运行并且访问外界指定端口。...进阶流量压力测试镜像构造 下面的任务为: 镜像文件中配置环境变量,该变量最好是能够docker build的时候修改而不是要手动改写Docerfile,这样后续写bash脚本之类的会比较方便。...我思考有没有一种方式,能够将一个gatling程序传到k8s集群中,只需要通过网络端口向其上传配置文件、发送命令就可以调用指定的压力测试脚本。...不过有没有必要作出这个项目也是一个问题,毕竟gatling中仍然存在一些问题没有弄清楚,比如atOnceUser和constantUser等测试方式之间的选择等。

72730

关于gdb警告not using untrusted file xx.gdbinit

warning: not using untrusted file "xx/.gdbinit" ls查看.gdbinit属性,是-rwx-rwx-rwx,试着改成764、644等,没有效果 目前的解决办法...:只好在gdb里运行source xx/.gdbinit命令 麻烦是麻烦了点,凑合着先用,暂时没找到更好的办法,mark下以后再说 附: linux的source命令 source可以强行一个脚本去影响当前的环境...同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文件,如 .bash_profile 和 .profile 等等。...例如,如果在登录对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,则可以用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。...补充: source可以脚本影响它们的父shell环境,这和export去影响子shell环境相反,呵呵

38910

shell脚本实现整站缓存和预缓存,进一步提升网站整体加载速度

Linux 中,shell 脚本结合系统任务计划 crontab,非常简单就能实现一些复杂程序才能完成的工作,开发成本低,且简单易学。...本文继续分享一个 shell 的实用案例:全站缓存和定时预缓存,进一步提供网站速度。 ?...记得博客之前分享过各种 WordPress 缓存方案,有 php 代码版本、有 nginx 的 fastcig 缓存等等,当时有人问,有没有办法 sitemap 也静态缓存(纯代码版本 sitemap...三、全站预缓存 有了上面的案例,如果实现全站预缓存真的太简单了。...②、没有缓存的博客 没有缓存的博客,说明你不喜欢缓存,可能也没必要开启缓存,所以下面只是为了保持文章的完整性而写的,大家选择性看看就好!

1.8K90

第十六章 Shell编程

第十六章 Shell编程 16.1 shell脚本运行 所谓脚本,就是把众多命令写入一个文件中,其按照一定的逻辑顺序执行,以完成一个具体的功能。...图中可见,通过命令更改了PS1变量的值,立即生效了,但输入bash命令,等于有重新打开了一个shell,该shell嵌套与于原shell之外,环境变量并未改变。...方式二: 常用 PATH="$PATH:/mnt" ---PATH变量追加上脚本所在的目录 注:若想对PATH的设置永久生效,则需要把该命令写入到环境变量配置文件中才可以;...(如分数范围,年龄范围等)的判断,所以各有所长,具体编程时应该在不同时机选择合适的语句。...但是用这个命令时,打开文件,读取一行立即关闭了文件。再次执行命令,又重新打开了文件,又从第一行开始读取了,所以无法实现多行读取功能。

1.1K51

Linux环境变量 转

假设用户使用的是BASH ,那么 2.    /etc/bashrc : 执行完/etc/profile 内容之后,如果用户的SHELL 运行的是bash ,那么接着就会执行此文件。...因此,如果你想每个使用bash 的用户每新开一个bash 和每次登陆都执行某些操作,或者给他们定义一些新的环境变量,就可以在这个里面设置。...修改上面介绍的那几个环境变量的配置文件 source 当直接执行一个脚本的时候,其实是一个子shell 环境运行的,即开启了一个子shell 来执行这个脚本脚本执行完该子shell 自动退出。...有没有办法在当前shell 中执行一个脚本呢?使用source 命令就可以脚本在当前shell 中执行。...随后bash会执行用户主目录下的.bash_profile脚本,.bash_profile脚本会执行用户主目录下的.bashrc脚本,  而.bashrc脚本会执行/etc/bashrc脚本  至此

2.5K10

Jenkins详细教程

大纲 1.背景   实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交,由测试人员测试;   或者前后端分离,经常会修改接口,然后重新部署...2.4.Jenkins安装   1.下载安装包jenkins.war;   2.安装包根路径下,运行命令 java -jar jenkins.war --httpPort=8080,(linux环境、...选择,进入插件安装页面   6.设置初始用户和密码   7.进入系统,安装完成   注意,如果还是进入不了系统,需要稍等一下,或者刷新页面,如果还是进入不了,需要重新启动jenkinds服务器。...,jar打包好,要将jar发送到哪里去,发送后去和启动等   这里需要提前需要部署的服务器上配置好路径,写好启动和停止项目的脚本,并设置为可以执行的脚本,   其实就是我们平时Linux上手动部署项目操作的脚本...  案例中给出的stop.sh脚本如下: 1 #!

77920

Linux 新手必会的21条命令合集

如果你根目录运行这条指令,将清除整个驱动器上的所有数据。 然后,当文件化为乌有时其中也包括了公司的视频。幸运的是,疯狂敲击 control -C 删除太多文件之前,系统管理员中止了这条命令。...这是你开始盲目恐慌的一天的好办法,或者,可以把它变成职业禁入方式。 17.擦除硬盘!...当你遭遇内核崩溃,重新启动系统你才可以恢复工作。一些情况下,这只是有点小烦;另一些情况下,这是一个大问题,比如说,高负荷运作下的生产环境。...绝不要运行你并不了解它功能的命令,它们都在提醒我… 21.提防未知脚本 年轻或是懒惰的系统管理员喜欢复制别人的脚本。何必重新重复造轮子?所以,他们找到了一个很酷的脚本,承诺会自动检查所有备份。...告诉我,所有那些 你 Docker 里面运行的容器镜像在干什么?你知道它们到底在运行着什么吗?我见过太多的没有验证容器里面装着什么就运行它们的系统管理员。请不要和他们一样。 结束 我有没有遗漏什么?

72170

Linux 进程在后台可靠运行的几种方法

场景 思考三个问题: 想进程断开连接依然保持运行? 如果该进程已经开始运行了该如何补救? 如果有大量这类需求如何简化操作?...如何命令提交不受本地关闭终端窗口、网络断开连接的干扰呢? ? ---- 下面举了一些例子, 我们可以针对不同的场景选择不同的方式来处理这个问题。...因此,我们的解决办法就有两种途径: 要么进程忽略 HUP 信号, 要么进程运行在新的会话里从而成为不属于此终端的子进程。 ---- 1. nohup nohup 无疑是我们首先想到的办法。...这样我们就可以一个终端内灵活切换运行多个任务,这一点调试代码时尤为有用。因为将代码编辑器挂起到后台再重新放回时,光标定位仍然停留在上次挂起时的位置,避免了重新定位的麻烦。...nohup/setsid 无疑是临时需要时最方便的方法,disown 能帮助我们来事后补救当前已经在运行了的作业,而 screen 则是大批量操作时不二的选择了。

97320

Linux之shell编程基础

linux中有很多类型的shell,不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是/bin/bash(重点),流行的shell有ash、bash、ksh.../test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,Linux 系统会去 PATH(环境变量) 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin...1.2、变量的定义与使用(重点) 变量,先定义使用。...不能使用bash里的关键字(可用help命令查看保留关键字)。 案例1:使用变量改写入门脚本中的第1个shell脚本。 ? ?...1.3、只读变量(了解) 语法:readonly 变量名 案例:定义变量a并且其值为10,随后设置其为只读变量,再去尝试重新赋值 ? ?

3.3K20

Linux服务器后台执行任务

jupyter-notebook 服务,关于怎么搭建 jupyter-notebook 远程服务请看我的这篇文章,每次使用都要开着一个终端才能使用服务,有时候切换一下代理,终端挂了,我就和服务器断开连接了,特别不爽,那么有没有办法终端关闭之后还继续跑着服务器上的...jupyter-notebook 呢,答案肯定是有的 nohup 用 nohup 这个命令,就可以终端退出连接服务器上依旧跑着我们的代码,顾名思义,这个命令就表示了 no hangup ,下面我们来看看最基本的使用...nohup.out 文件中,并且这个终端也还是被占用了,不能干其他事,因此,上面这样并没有什么卵用 想起我们可能用 & 符号当前任务在后台运行而当前终端可以继续干其他的事,那么在这里道理也是一样的...重定向到 stdout 如果不加 & 的话就会新建一个名为 1 的文件 ) $ nohup jupyter-notebook --ip 0.0.0.0 >jupyter.log 2>&1 & kill 已经程序服务器后台自动运行了...,要是我们想关掉应该怎么做呢,上面说到可以用 jobs 命令,但实际上,重新启动一个终端的时候再输入 jobs 是得不到输出的。

1.8K20

docker的reap问题

僵尸进程被reap,其进程号与进程表中的表项都可以被系统重用。但如果父进程没有调用wait,僵尸进程将保留进程表中的表项,导致资源泄漏。...假设容器中跑一个Web服务器,这个服务器运行bash编写的CGI脚本脚本中调用了grep。Web服务器发现脚本执行超时,杀掉了它,但是grep进程没有受到影响并继续运行。...解决办法 bash 是否已经有现成,流行的软件可以做到这一点呢?还真有,这就是bashbash会正确地reap收养的子进程。bash可以执行任何程序。...docker init docker提供了一个解决的办法,在运行容器的时候添加init标志 docker run --init your_image_here 这会docker内部的微型init系统封装应用程序...Tini一般容器中运行,用于生成子进程,等待它推出,reap僵尸进程,并执行信号转发。 最新的版本中,能将退出码143重新映射为0。

1.2K30

如何实现Linux服务Crash自动重启?

概述 近期碰到了一个 Linux Systemd 服务 Crash, Crash 需要人工介入重启. 那么, 有没有办法如何实现 Linux 服务 Crash 自动重启?...不过,你可以 systemd 自动重启守护进程,以防它崩溃或意外被杀掉。为此,你可以 [Service] 中添加 Restart 选项。...也许你使用的软件有一个已知的错误,要求崩溃时删除缓存文件,也许你想启动一个脚本来收集日志和系统信息,以便诊断问题。Systemd 允许你指定在服务失败时运行的单元。...:执行一些手动变通方法服务重新运行,向监控系统发出警报,或者压缩一些临时日志和应用程序状态以排除故障。...本例中,当单元发生故障时,系统将优雅地重新启动: [Unit] Description=Lightweight Kubernetes Documentation=https://k3s.io Wants

64140

Shell编程从入门到精通

[neixif0n9k.jpg] bash 由于易用和免费,日常工作中被广泛使用。同时, bash 也是大多数Linux 系统默认的 Shell。 2..../hello.sh #执行脚本 [k83a73d5vi.jpg] 直接写 hello.sh,linux 系统会去 PATH 里寻找有没有叫hello.sh的。 用 ....直接运行解释器,其参数就是 shell 脚本的文件名,如: sh /root/shelldemo/hello.sh 使用解释器直接执行shell程序这种方式来运行脚本,不需要考虑脚本程序的执行权限了...Shell程序:参数传递 执行Shell程序脚本时,是可以向shell程序传递参数。 4.1、参数传递方式 传递参数的方式:..../bin/bash count=0 for((i=1;i<=10;i++)) do count=$(($count+$i)); done echo “累加的值:${count}”; [8pvn8udkb5

84101

Bash 脚本 set 命令教程

本文介绍它的基本用法,你可以更安心地使用 Bash 脚本。 一、简介 我们知道,Bash 执行脚本的时候,会创建一个新的 Shell。...set -o nounset 三、set -x 默认情况下,脚本执行,屏幕只显示运行结果,没有其他内容。如果多个命令连续执行,它们的运行结果就会连续输出。有时会分不清,某一段内容是什么命令产生的。...但是,某些命令的非零返回值可能不表示失败,或者开发者希望命令失败的情况下,脚本继续执行下去。这时可以暂时关闭set -e,该命令执行结束,再重新打开set -e。.../usr/bin/env bash set -eo pipefail foo | echo a echo bar 运行,结果如下。...另一种办法执行 Bash 脚本的时候,从命令行传入这些参数。

1.7K40

linux世界中的10大经典病毒全分析

这个病毒可以创建一个网络,攻击者远程控制受感染的系统。 经典案例2002年,数以千计的基于Linux的系统被感染。...经典案例:许多Web服务器因为未及时更新Bash而受到影响。 清理办法:更新Bash到最新版本并检查系统是否有被植入的后门。 3....经典案例:数千个Linux系统被感染并成为了僵尸网络的一部分。 清理办法重新安装系统,更改密码,更新SSH软件。 7....经典案例:针对Drupal CMS的漏洞进行攻击。 清理办法:更新Drupal,运行杀毒软件,监控系统活动。 9....经典案例:影响了多个Linux系统并将它们用于恶意活动。 清理办法运行杀毒软件,检查和清除系统中的不寻常进程。 10.

28510

记一次 Bash 脚本调优

所以说,脚本Linux中是举足轻重的家伙。 由于博主不是科班出身,所以计算机基础、编程等这方面有所欠缺,往往都是现炒现卖,不求甚解。...假使我有100个字段需要替换,那么我的 Bash 脚本就需要增加100行代码 str01 ~ str100,是不是很疯狂?所以我就想了个办法。...我遇到的问题是: Bash 脚本调试没问题,bash -x 153xxx 'This is a test messges !'...sendsms.sh 运行结果满足我的需求,没有出任何问题,但是当我把这个新改的脚本交个 Zabbix 调用的时候,发现变量值为空了,那么可想而知结果肯定不是我预期的,这个问题又困扰了我,开始自检 Bash...用户,这里提下 zabbix 用户没权限自己目录下读写文件,特别是调用脚本的时候(所以,如果你的文件需要脚本运行的时候读写操作,最好的方法就是放在公共目录,比如 /var 下)。

11620

Linux系列教程(二十二)——Linux的bash变量

上篇博客我们介绍了bash的一些基本功能,这是我们平时操作最频繁的。本篇博客我们介绍bash的变量,为后面编写shell脚本做铺垫。...解决办法就将hello.sh的所在路径添加到 $PATH 变量中,如下: ?   ⑥、定义系统提示符的变量 $PS1 ? ? 6、位置参数变量的用法 ? ?...12、环境变量配置文件   前面我们将环境变量的时候,我们将脚本的路径加入到 $PATH 路径中,然后就可以直接通过脚本的名称来执行脚本。...但是如果系统重启之后,发现又必须要重新加入到 $PATH 变量中才可以。那么有没有它一直生效的方法呢?   解决办法就是环境变量配置文件中加入脚本的路径。   ...下图是环境变量文件的读取顺序:(用户每次重新登录的时候就会重新读取下面的配置文件) ?

1.1K100
领券