首页 > 系统相关 >Shell 编程常用参考

Shell 编程常用参考

时间:2023-07-12 13:44:50浏览次数:41  
标签:脚本 Shell file 参考 str1 编程 参数 测试

Shell特殊变量 $0, $#, $*, $@, $?, $$和命令行参数

Shell 中的特殊变量参考如下表:

变量 含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2
$# 传递给脚本或函数的参数个数
$* 传递给脚本或函数的所有参数
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到
$? 上个命令的退出状态,或上个函数的返回值
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID

注:$ 和 $@ 的区别*

  • $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。
  • 但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

Shell 中的 if 判断

条件测试的表达式

  • if [ str1 = str2 ]:当两个串有相同内容、长度时为真
  • if [ str1 != str2 ]:当串str1和str2不等时为真
  • if [ -n str1 ]:当串的长度大于0时为真(串非空)
  • if [ -z str1 ]:当串的长度为0时为真(空串)
  • if [ str1 ]:当串str1为非空时为真

整数比较

  • -eq:测试两个整数是否相等
  • -ne:测试两个整数是否不等
  • -gt:测试一个数是否大于另一个数
  • -lt:测试一个数是否小于另一个数
  • -ge:大于或等于
  • -le:小于或等于

命令间的逻辑关系:

  • 逻辑与:&&
  • 逻辑或:||

字符串比较

字符串比较,直接用 ==、!=、>、< 等符号即可,两边需要有空格。

文件测试

  • -e:FILE 测试文件是否存在
  • -f:file 测试文件是否为普通文件
  • -d:file 测试指定路径是否为目录
  • -r:file 测试文件对当前用户是否可读
  • -w:file 测试文件对当前用户是否可写
  • -x:file 测试文件对当前用户是都可执行

标签:脚本,Shell,file,参考,str1,编程,参数,测试
From: https://www.cnblogs.com/wxweven/p/17547278.html

相关文章

  • 【雕爷学编程】Arduino动手做(117)---P10V706LED屏模组3
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(117)---P10V706LED屏模组2
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(159)---RCWL-0515微波检测模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • C++计算机学院2023年度小学期编程实践课程(图书管理系统)[2023-07-12]
    C++计算机学院2023年度小学期编程实践课程(图书管理系统)[2023-07-12]计算机学院2023年度小学期编程实践课程上机实验题目(一)基于学生结构体数组的图书管理系统(40分)定义学生结构体类型的数组,静态初始化学生信息(不包括借书信息)。图书使用二维字符数组或字符指针数组单独......
  • 编程基础——计算机、程序和C++语言简介
    编程(programming)的意思是创建(或开发)软件,软件也称为程序(program)。软件是一个包含指令的集合,这些指令告诉计算机,或者计算设备,应该做什么。软件设计者使用一种强大的工具——程序设计语言(programminglanguage)开发出这些软件。没有最棒的编程语言,一种编程语言在某些情况下可......
  • linux shell脚本实现删除连续的空行为一行
     001、awk实现[root@PC1test02]#lsa.txt[root@PC1test02]#cata.txt##测试数据010203040506070809101112131415161718192021222324252627282930##将多个连续的空行压缩为一个空行[root@PC1tes......
  • 用代码玩转迷你图:手把手教你用编程语言打造简洁易读的数据图表!
    前言迷你图(MiniChart)最早起源于流程图和组织架构图中的一种简化图形,用于表示一个大型数据集合中的趋势和变化。随着数据可视化技术的发展,迷你图也被广泛应用在各种类型的数据图表中,例如折线图、柱形图、散点图等。迷你图通常具有小巧、简洁、直观的特点,能够在有限的空间内有效地展......
  • shell脚本-监控多台服务器磁盘利用率
    shell脚本-监控多台服务器磁盘利用率介绍第一步:实现免密登录服务器,为后续脚本免密登录做好准备。第二步:把要监控服务器的ip地址root用户端口port写入host.info文件中以便后续脚本从这个文件读取服务器信息。第三步:写shell脚本,先从host.info中拿到信息连接各个服务器,读取......
  • R语言代做编程辅导ASSIGNMENT FOUR - RANDOM GRAPHS(附答案)
    全文链接:https://tecdat.cn/?p=33183PROBLEM1)CreatingRandomAdjacencyMatricesScriptName:adjMatrixInput:n...Thenumberofverticesinthegraphp...Probablitytwoverticesareconnectedplot...whetherornotthematrixshouldbeplottedasagraph......
  • finshell 连接不到服务器,报Session.connect: java.net.SocketException: Connection r
    用finshell一段时间了,非常不错,但是有段时间突然连接不上服务器,各种重装,重启服务器都不行,在网上搜方法也没有好的办法。在我一次实在烦的不得了的时候,让我发现一个好的解决方案。先上图: 是不是出现这个问题,那么我的解决方案是啥呢?看我的手速,就是点击红色的闪电图标,一般连续点击......