shell初探(四)

2023-05-16

1.for循环
循环1-100的数字,并输出

for ((i=1;i<=100;i++))
do 
        echo $i
done

2.case 判断语句
接着上面的循环写,在10,20,30的时候划分割线

for ((i=1;i<=100;i++))
do 
        case $i in
                10 )
                echo "---------"
                exit
                ;;
                20 )
                echo "---------"
                exit
                ;;
                30 )
                echo "---------"
                exit
                ;;
                * )
                echo "$i"
                ;;
        esac
done

3.while 循环
在上面代码for循环改造成while循环

i=1
while [ $i -le 30 ]
do
        case $i in
                10 )
                echo "---------"
                exit
                ;;
                20 )
                echo "---------"
                exit
                ;;
                30 )
                echo "---------"
                exit
                ;;
                * )
                echo "$i"
                ;;
        esac
        let i=i+1
done

其中:let 用于执行表达式,变量计算中不需要加上 $ 来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来。
4.select交互选择菜单

echo "please select menu number:"
select var in "a" "b" "c"
do 
        case $var in
                a )
                echo "selected a"
                ;;
                b )
                echo "selected b"
                ;;
                c )
                echo "selected c"
                ;;
        esac
done

执行结果:

please select menu number:
1) a
2) b
3) c
#? 1
selected a
#? 2
selected b
#? 3
selected c
#? ^C

选择时前面有“#?”,不太友好。用PS3(select交互提示值)调整下

PS3="please select menu number:"
select var in "a" "b" "c"
do 
        case $var in
                a )
                echo "selected a"
                ;;
                b )
                echo "selected b"
                ;;
                c )
                echo "selected c"
                ;;
        esac
done

执行结果:

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

shell初探(四) 的相关文章

  • 是否有可能在linux中找到包含特定文本的文件?

    考虑这种情况 我在文件夹 Example 下有很多文件 如果我需要找到一个包含特定短语 如 Class Example 的文件 我该如何使用 Linux shell 来做到这一点 linux中有类似 定位 的函数可以做到这一点吗 Thank
  • 如何在fish shell脚本中获取程序名称?

    在 bash 中 与在 ruby 中一样 程序名称由 0 给出 鱼里有什么 如果有必要 我可以执行以下操作 set PROGRAM ps no header o args p self egrep o S 2 但我确信程序名称必须已经在某个
  • 如何复制每个扩展名为 X 的文件,同时保留原始文件夹结构? (类Unix系统)

    我正在尝试将每个 HTML 文件从 src 文件夹复制到 dist 文件夹 但是 我想保留原始文件夹结构 如果 dist 文件夹不存在 我想创建一个新文件夹 如果文件夹不存在则创建 d dist mkdir dist 复制每个文件 cp R
  • 此 bash 命令在 Makefile 中未正确运行

    在 Makefile 里面我有这样的 release version poetry version cut f2 d echo release version 如果我运行 我的终端中的语句将毫无问题地运行 gt version poetry
  • 如何通过 shell 脚本确定网页是否存在?

    我正在尝试制作一个程序 可以将一系列漫画扫描转换为一个 pdf 文件 并且我不想尝试下载图片来确定我是否有正确的网址 是否有一个 shell 脚本命令可以用来检查网页是否存在 在 NIX 下 您可以使用curl发出一个简单的HEAD要求 H
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • awk: hping: 打印 icmp 发起/接收之间的差异

    我有以下输出hping http ports su net hping在 OpenBSD 上 hping icmp ts www openbsd org HPING www openbsd org re0 129 128 5 194 icm
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 在 bash 中使用单个命令为 shell 变量分配默认值

    我对 bash 3 00 shell 脚本中的变量进行了大量测试 如果未设置变量 则它会分配默认值 例如 if z VARIABLE then FOO default else FOO VARIABLE fi 我似乎记得有一些语法可以在一行
  • 如何在递归调用函数时阻止 bash 创建子 shell

    这是一个计算阶乘的简单 shell 函数 bin bash function factorial if 1 lt 2 then echo 1 else echo 1 factorial 1 1 fi factorial 1 但我发现这个脚本
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • 有没有办法让我简化这些回声? [复制]

    这个问题在这里已经有答案了 我仍在学习如何编写 shell 脚本 并且我面临着一个挑战 让我更容易回显 Name1 Name2 Name15 我不太确定从哪里开始 我已经想法 但如果我搞砸了 我不想看起来很傻 有什么帮助吗 我实际上还没有尝
  • 如何使用shell脚本从json字符串中grep特定字段值[重复]

    这个问题在这里已经有答案了 下面是文件中可用的 JSON 字符串 我需要从中提取值status在 shell 脚本中 预期输出 status success 响应 json eventDate null dateProccessed nul
  • 如何从 Artifactory 存储库下载最新的工件?

    我需要来自存储库的最新工件 例如快照 人工工厂 http en wikipedia org wiki Software repository Repository managers 该工件需要通过脚本复制到服务器 Linux 我有什么选择
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • 使用 awk 读取文件并搜索另一个文件

    我正在读取一个文件 每行都有数字 我需要搜索另一个满足这些数字和其他条件的文件 我正在尝试使用 awk 来做到这一点 但遇到了问题 File a txt 1476 1477 1497 现在我需要打印第 12 列包含这些数字的行以及第 3 列
  • 分叉/多线程进程|重击

    我想让我的代码的一部分更加高效 我正在考虑让它分叉成多个进程 并让它们一次执行 50 100 次 而不是只执行一次 例如 伪 for line in file do foo foo2 foo3 done 我希望这个 for 循环运行多次 我
  • sh / Bash shell 脚本中 !# (bang-pound) 的含义是什么?

    我想了解这个 Scala 脚本是如何工作的 usr bin env bash exec scala 0 object HelloWorld def main args Array String println Hello world arg

随机推荐

  • linux系统的7种运行级别

    Linux系统有7个运行级别 runlevel 运行级别0 xff1a 系统停机状态 xff0c 系统默认运行级别不能设为0 xff0c 否则不能正常启动 运行级别1 xff1a 单用户工作状态 xff0c root权限 xff0c 用于系
  • C语言:求 1! + 2! + 3! + ... + n!(for循环)

    解决问题 xff1a C语言利用 for循环 xff1a 求 1 43 2 43 3 43 43 n 代码实现 include lt stdio h gt int main void int n 61 0 int i 61 0 int m
  • Selenium之Css定位元素

    Selenium之Css定位元素 xff1a cssSelector定位 xff0c 属于CSS高级等位 xff0c 它的定位方式 xff0c 利用选择器进行的 在CSS 中 xff0c 选择器是一种模式 xff0c 用于选择需要添加样式的
  • Ubuntu双系统、ROS、软件安装教程

    一 win10下安装Ubuntu16 04双系统 1 制作系统U盘 下载Ubuntu16 04 我们首先去Ubuntu官网下一个Ubuntu16 04的iso镜像文件 利用软碟通制作 在制作系统U盘的时候我们需要去下一个软件 软碟通 xff
  • Matlab并行计算(新手)

    Matlab并行计算 1 Matlab不会自动开启多核并行2 Matlab并行过程 parpool3 电脑核数与parpool的关系4 说明 matlabpool与partool5 并行实现 parfor或SPMD5 1 parfor xf
  • linux打开防火墙端口

    先打开端口 firewall cmd zone 61 public add port 61 8888 tcp permanent 命令8888就是端口 xff0c 直接替换 然后重启防火墙 firewall cmd reload
  • CSS动画(animation)【一】

    1 动画 xff08 animation xff09 属性简介 2 动画实现 64 keyframes wave 0 css样式 10 css样式 100 css样式 3 示例 xff08 vue xff09 lt template gt
  • Js对象数组查找对象属性的值

    let students 61 name 39 小明 39 age 9 name 39 小李 39 age 14 name 39 小白 39 age 12 let index 61 studens findIndex function st
  • sql汇总

    一 xff1a SQLSERVER 1 dateadd 日减一 update tableName set time 61 DATEADD DAY 1 time 小时加10 update tableName set time 61 DATEA
  • 微信开发者工具 显示区域鼠标不显示的问题

    1 xff1a 打开控制面板 2 xff1a 硬件和声音 3 xff1a 鼠标 4 xff1a 勾选显示鼠标轨迹 OK
  • maven导入本地jar

    cmd 然后进入maven库根目录 mvn install install file Dfile 61 D maven lingpipe 4 1 2 jar DgroupId 61 com aliasi DartifactId 61 lin
  • MergeSort(迭代归并排序)——C语言实现

    前言 xff1a 归并排序跟快速排序有异曲同工之妙 xff0c 都是分治法的典型代表 但是这种分治法都有不小的弊端 xff0c 就是需要占用大量的系统栈 xff0c 很容易造成空间的大量浪费 xff0c 所以就有用迭代来优化递归的操作 这次
  • Spring boot @Async不起作用 的解决方法

    Spring boot 64 Async 为异步方法 但有时候往往会遇到注解不起作用的情况 xff0c 就我遇到的两种情况 xff0c 给出解决方法 1 64 Async 注解的方法不能跟调用它的方法房子一个类中 2 需要在Applicat
  • springboot jar包window服务器启动

    1 在idea中用maven将程序打成jar xff0c 放到运行的目录中 2 去github上面下载winsw xff1a https github com kohsuke winsw releases 将WinSW NET4 exe文件
  • salesforce 接口国内访问慢的解决方案

    最近接到一个客户 xff0c 他们需要用salesforce作为ToC的后端 xff0c 由salesforce直接提供api给前端页面 我们知道一般做salesforce的 xff0c 基本上是作为公司内部应用系统来使用的 xff0c 即
  • sql server跨库连接

    exec sp addlinkedserver kd SQLOLEDB 127 0 0 1 exec sp addlinkedsrvlogin kd 39 false 39 null 39 用户名 39 39 密码 select from
  • shell初探(一)

    1 文件夹创建 span class token function mkdir span p my sheel mkdir是在当前目录下创建文件夹 xff0c p是递归创建目录 2 编辑文件 span class token functio
  • shell初探(二)

    1 if条件语句 一般数值判断用到逻辑运算符 gt lt 的用双小括号 span class token shebang important bin bash span age1 span class token operator 61 s
  • shell初探(三)

    前面学了简单的shell编程 xff0c 那今天我们就根据前面学到的内容 xff0c 写一个小demo练习一下 需求 学生成绩录入查询系统 xff0c 带简单筛选功能 代码 span class token shebang importan
  • shell初探(四)

    1 for循环 循环1 100的数字 xff0c 并输出 span class token keyword for span span class token variable span class token punctuation sp