Linux Shell编程

Latex参考文献中大写字母编译后自动变成了小写,如何保持原字母大写形式 bib文件参考文献中大写自动变为小写,如何保持原大写问题。Latex: 保持参考文献大小写,overleaf文献编译后,原大写字母自动变成了小写字母,如何保持原字母大写 阅读详情

shift命令

 

shift命令的使用:

     对于某个命令行参数,其参数个数可以不固定,但是可以通过$*或$@进行循环操作。若用户要求Shell在不知道变量个数的情况下,还能逐个处理参数,也就是在$1之后是$2,$2之后是$3。在未运行shift命令之前$1是可用的,当使用shift命令之后,原来的$2会变成$1,并且原有的$1变得不可用,通过$#命令获得的参数个数也会少1。

 

示例如下:

#测试shift命令(x_shift.sh)
until [ $# -eq 0 ]
do
echo "第一个参数为: $1 参数个数为: $#"
shift
done
执行以上程序x_shift.sh:
$./x_shift.sh 1 2 3 4

结果显示如下:

第一个参数为: 1 参数个数为: 4
第一个参数为: 2 参数个数为: 3
第一个参数为: 3 参数个数为: 2
第一个参数为: 4 参数个数为: 1

从上可知shift命令每执行一次,变量的个数($#)减一,而变量值提前一位,下面代码用until和shift命令计算所有命令行参数的和。

 

#shift上档命令的应用(x_shift2.sh)
if [ $# -eq 0 ]
then
echo "Usage:x_shift2.sh 参数"
exit 1
fi
sum=0
until [ $# -eq 0 ]
do
sum=`expr $sum + $1`
shift
done
echo "sum is: $sum"
执行上述程序:

$x_shift2.sh 10 20 15

其显示结果为: 45

shift命令还有另外一个重要用途,Bsh定义了9个位置变量,从$1到$9,这并不意味着用户在命令行只能使用9个参数,借助shift命令可以访问多于9个的参数。

  shift命令一次移动参数的个数由其所带的参数指定。例如当shell程序处理完前九个命令行参数后,可以使用shift 9命令把$10移到$1。

 

case语句 
  
 case语句适用于需要进行多重分支的应用情况。

        case分支语句的格式如下:

            case $变量名 in

                模式1)

            命令序列1

            ;;

                模式2)

            命令序列2

         ;;

                *)

            默认执行的命令序列     ;;

            esac

        case语句结构特点如下:

        case行尾必须为单词“in”,每一个模式必须以右括号“)”结束。

        双分号“;;”表示命令序列结束。

        匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。

        最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后

    的命令序列。

 

        case语句实例:由用户从键盘输入一个字符,并判断该字符是否为字母、数字或者其他字符,

    并输出相应的提示信息。

#!/bin/bash
read -p "press some key ,then press return :" KEY
case $KEY in
[a-z]|[A-Z])
echo "It's a letter."
;;
[0-9])
echo "It's a digit."
;;
*)
echo "It's function keys、Spacebar or other ksys."
esac

 

######################################################


case word in [ pattern [ | pattern ] ... ) list ;; ] ... esac
 case/esac的标准用法大致如下:
 case $arg in
     pattern | sample) # arg in pattern or sample
     ;;
     pattern1) # arg in pattern1
     ;;
     *) #default
     ;;
 esac
 arg是您所引入的参数,如果arg内容符合pattern项目的话,那麽便会执行pattern以下的程式码,而该段程式码则以两个分号";;"做结尾。

 可以注意到"case"及"esac"是对称的,如果记不起来的话,把"case"颠倒过来即可。

 

 --------------------------------------------------------------------------------

 例一 : paranoia
 #!/bin/sh
 case $1 in
         start | begin)
           echo "start something"
         ;;
         stop | end)
           echo "stop something"
         ;;
         *)
           echo "Ignorant"
         ;;
 esac

 执行
 [foxman@foxman bash]# chmod 755 paranoia
 [foxman@foxman bash]# ./paranoia
 Ignorant
 [foxman@foxman bash]# ./paranoia start
 start something
 [foxman@foxman bash]# ./paranoia begin
 start something
 [foxman@foxman bash]# ./paranoia stop
 stop something
 [foxman@foxman bash]# ./paranoia end
 stop something

 --------------------------------------------------------------------------------

 例二 : inetpanel
 许多的daemon都会附上一个管理用的Shell Script,像BIND就附上ndc,Apache就附上apachectl。这些管理程式都是用shell script来写的,以下示一个管理inetd的shell script。
 #!/bin/sh

 case $1 in
     start | begin | commence)
        /usr/sbin/inetd
     ;;
     stop | end | destroy)
        killall inetd
     ;;
     restart | again)
        killall -HUP inetd
     ;;
     *)
        echo "usage: inetpanel [start | begin | commence | stop | end | destory | restart | again]"
     ;;
 esac

 

 --------------------------------------------------------------------------------

 例三 : 判断系统
 有时候,您所写的Script可能会跨越好几种平台,如Linux、FreeBSD、Solaris等等,而各平台之间,多多少少都有不同之处,有时候需要判断目前正在那一种平台上执行。此时,我们可以利用uname来找出系统资讯。
 #!/bin/sh

 SYSTEM=`uname -s`

 case $SYSTEM in
     Linux)
         echo "My system is Linux"
         echo "Do Linux stuff here..."
     ;;
     FreeBSD)
         echo "My system is FreeBSD"
         echo "Do FreeBSD stuff here..."
     ;;
     *)
         echo "Unknown system : $SYSTEM"
         echo "I don't what to do..."
     ;;
 esac

 

 

LinePhone3.2.7(android端最新版本) sip客户端 SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/ 立即下载

相关推荐

6层高速PCB设计实战:BGA布局与阻抗匹配关键解析

本文深入解析6层高速PCB设计中BGA布局与阻抗匹配的关键技术。通过实战经验分享,详细介绍了六层PCB层叠结构的选择与优化、BGA器件布局技巧、阻抗匹配的实战经验以及高速布线技巧,帮助工程师提升PCB设计水平,确保信号完整性和电源完整性。

weixin_28481133的博客 369

Linux Shell编程case语句

Linux Shell编程case语句    case语句适用于需要进行多重分支的应用情况。         case分支语句的格式如下:             case $变量名 in                 模式1)             命令序列1             ;;                 模式2)

非淡泊无以明志,非宁静无以致远 13万+

微信PC端Multi文件夹数据库解析:语音消息导出与转换实战指南

本文提供了一份详细的微信PC端语音消息导出与转换实战指南。通过解析Multi文件夹中的MediaMSG数据库,指导用户定位、解密数据库,并利用Python脚本精准提取SILK格式语音,最终转换为通用的WAV或MP3格式,实现个人语音数据的本地备份与处理。

garlic的博客 583

Linux Shell编程语句case

Linux Shell编程case语句 case语句 case语句适用于需要进行多重分支的应用情况。 case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) ...

weixin_45408213的博客 334

基于IP2369与STM32的45W双向PD移动电源设计

USB PD(Power Delivery)是一种面向高功率、智能协商的通用快充协议,其核心在于通过BMC编码在CC线上完成供电能力(PDO)动态匹配与电压/电流精准调控。IP2369作为高度集成的PD协议管理芯片,内置PHY、协议引擎与MOSFET驱动,可卸载MCU实时通信压力;而STM32F103系列凭借低功耗STOP模式与丰富外设,成为电源状态管理与用户交互的理想协处理器。该组合显著提升系统鲁棒性与能效比,适用于便携式移动电源、嵌入式备用电源及PD协议教学验证等场景。本文围绕IP2369配置电阻精度、

weixin_42608299的博客 519

扫地机器人行业 企业篇-产业总部地理分布

中国扫地机器人产业呈现区域集聚特征,广东省以13家企业领跑全国,其中深圳独占9家(如大疆、云鲸智能等),佛山、广州、东莞各有分布。江苏省6家企业主要集中在苏州(科沃斯、追觅科技等)。北京聚集了石头科技、小米等4家品牌。浙江、山东、湖南等地也有代表性企业分布。国际品牌方面,美国iRobot、韩国三星/LG、日本松下等均在各自国家设立总部,而戴森、飞利浦等欧洲品牌则将中国运营中心设在上海或苏州。值得注意的是,部分品牌如由利、宝家丽虽为外资起源,但主要运营实体已落户中国。

智能硬件研发,欢迎交流 363

linux脚本

这篇文章还是有些错误的,再脚本中如果写大段的echo文字时,需要使用如下的方式: cat <<-HELP 这里是你的内容,HELP只不过是标识。但是一定要注意cat命令后两个小于后“-”,如果不加,语法会有错误。我辛苦的找了很久.... HELP 另外清晰的地址在 http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F...

技术代码资料库 151

2026年寒武纪数字IC笔试试卷带答案

本文摘要: 该数字IC设计测试卷包含单选题(30分)、波形分析题(15分)、多选题(30分)三类客观题,覆盖时序约束、半导体工艺、状态机、数制转换、同步复位等核心知识点。重点考察:1)跨时钟域处理(如异步FIFO、格雷码应用);2)时序分析(建立/保持时间、时钟约束指令);3)低功耗设计技术(时钟门控、DVFS);4)寒武纪MLU架构特性(张量核、混合精度计算)。解析强调工程实践要点,如异步复位需同步释放、建立时间违例与频率的关联性等。试题难度梯度明显,既包含基础概念辨析(如Moore/Mealy状态机),

Open 223

Linux shell 脚本

 Linux shell 脚本                                        1. Linux 脚本编写基础1.1 语法基本介绍1.1

yown的专栏 2153

RAG效果调优清单(命中率提升3倍)

本文提出了一套工程可落地的RAG(检索增强生成)模型组合方案,强调通过最优组合实现效果、成本和扩展性的平衡。核心架构包括Embedding模型、向量数据库检索、Rerank模型和LLM生成四个环节,推荐了四种具体组合方案:本地最优性价比(bge+reranker+Qwen 7B)、效果优先(bge-large+reranker+14B模型)、高并发(轻量模型+vLLM)和中英混合(多语言模型)。文章指出Embedding决定检索下限,Rerank提升准确率上限,LLM影响最终体验,并提供了不同场景的优化策略

刘一说的IT专栏 523

流体仿真软件:COMSOL Multiphysics二次开发_(3).流体仿真基础理论

流体仿真基础理论包括流体的基本性质、流体运动方程、边界条件、初始条件、湍流模型和网格生成等。在使用COMSOL Multiphysics进行流体仿真时,正确设置这些参数和条件是获得准确仿真结果的关键。通过实际应用案例,可以更好地理解如何在COMSOL中进行流体仿真,并提取和分析仿真结果。希望本文对流体仿真初学者和从业人员有所帮助。

kkchenjj的博客 1343

bash入门教程

星期三, 十月 06, 2004<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"

FreeXploiT 2641

YOLO26 多任务统一架构:检测 / 分割 / 姿态 / OBB 设计

YOLO26提出了一种多任务统一架构,整合了目标检测、实例分割、姿态估计和旋转框检测(OBB)四大计算机视觉任务。该架构采用共享Backbone和Neck的设计,配合轻量级任务特定Head,解决了传统方法中多模型并行带来的高开发成本、大内存占用和低推理效率问题。核心设计包括:1)共享特征提取层实现参数复用;2)模块化Head结构支持灵活任务组合;3)统一接口实现单模型多任务处理。实验表明,该架构在保持各任务性能的同时显著提升了系统效率,为多任务视觉系统提供了新的实现范式。

一键难忘的博客 706

Linux 下shell编程

什么是shell?Shell是一个命令解析器,是介于Linux操作系统的内核(kernel)与用户之间的一个绝缘层。shell脚本就是讲各类命令预先放入其中,方便一次性执行的一个程序文件,主要用于方便管理员进行设置或者管理。    序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 She

知秋一叶 5106

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Linux系统的Shell编程

一. 什么是Shell 1. 在学习Shell编程之前,我们应该要先知道什么是Shell 用户、Shell、Linux内核、硬件的关系如下图: Shell是一个应用程序,也可以说是一个命令解释器,它是用户和Linux内核之间的桥梁,可以将用户在图形界面上的操作或在终端输入的命令传递给Linux内核,然后Linux内核再调度各个硬件及其他资源来完成用户的操作。 什么是Linux的内核?在Linux操作系统中,真正能够操作计算机硬件完...

weixin_55118477的博客 3239

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Linux shell编程

我们用的是:bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。[注]:Bash (the Bourne-Agian shell)由 Brian Fox 为GNU项目编写,目的是代替sh。

2401_84382970的博客 1194

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Linux的Shell编程

Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。对于JavaEE和Python程序员来说,工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。对于大数据程序员来说,需要编写Shell程序来管理集群。Linux Shell中的变量分为:系统变量和用户自定义变量。系统变量:$HOME、$PWD、$SHELL、$USER等等,比如:echo $HOME显示当前shell中所有变量:set定义变量 : 变量=值。

m0_75260099的博客 3381

linux shell编程总结

    本周学习了unix/linux shell编程,参考的是《LINUX与UNIX Shell 编程指南》,David Tansley著;徐焱,张春萌等译,由机械工业出版社出版的了,往内页那么一翻,都是2000年3月译的了,原书估计会更老,不过图书馆能找到合适于我这种初学者的也许就这么本了,将就着的吧。    这本书是以Bourne shell这个UNIX系统都支持的标准shell。Bou

ltbook的专栏 4557

Linux Shell 编程

Shell 是Linux 内核与用户之间的交互接口,它接收用户输入的命令,解析后传递给内核执行,并将结果返回给用户。简单来说,Shell 是 “命令解释器”,也是一种编程语言(解释型语言,无需编译)。变量名由字母、数字、下划线组成,不能以数字开头。赋值时等号两侧不能有空格(如a=10正确,a = 10错误)。变量值含空格或特殊字符(如)时,需用双引号(")或单引号(')包裹。变量含义示例场景$0当前脚本的文件名echo $0$n脚本的第 n 个参数(n≥1,$1是第一个参数)执行。

zcz1607127821的博客 1148

Linux——Shell编程

Shell是一种命令语言和程序设计语言,它既是用户与Linux系统交互的桥梁,也支持变量定义、流程控制等编程特性。本文详细介绍了Shell基础语法,包括变量定义与使用、参数传递、字符串操作、数组、运算符、输入输出命令(echo/printf/read)以及test条件测试。重点讲解了Shell流程控制语句(if/for/while/case等)和函数定义方法,并深入解析输入输出重定向机制,涵盖标准输出/错误重定向、文件描述符合并及/dev/null的特殊用途。通过丰富的代码示例,系统性地展示了Shell脚本

2501_91237346的博客 1011

技术干货:Linux Shell 编程基础,看这一篇就够了!

技术干货:Linux Shell 编程基础,看这一篇就够了!

cdeveloper 的专栏 4万+

Linux之Shell编程

Linux之Shell编程 1.1.Shell概述 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。 用户<—>Shell&lt...

鬼谷子的博客 299

linux学习,shell编程

本文分享了Linux中的一些基本操作

qq_61272601的博客 940

Linux软件编程:shell

4.3 []:(ls file_[1-5].txt或者ls file_[^3].txt或者ls file_[1,3,5].txt)匹配一位长度、指定字符的文件名。3.2输出(echo $filename):将变量filename中的内容打印在屏幕上。4.2双引号(echo"$filename"):将里面的变量换成对应的值打印。1.基本shell命令:ls、cd、touch、rm、mkdir、rmdir、cp、mv。4.1 *:(ls file*.txt)匹配任意长度、任意字符的文件名。

2501_91498265的博客 1267

【Linux】Shell编程【一】

Shell编程(一),关于Shell变量、运算符等

低调做人,低调编码,神码都是浮云 2310

Linux下的shell语言编程入门

Linux下的shell语言编程入门2006年12月15日 星期五 上午 02:32 通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应。一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率。要达到这样的目的,通常我们利用shell程序或者shell脚本来实现

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 5399
上一篇: windows系统上面如何后台执行程序
下一篇: 详解GCC的下载和安装
zm_21
博客等级 码龄14年 147粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值