热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Shell参数详解与应用

本文详细介绍了Shell参数的种类及其应用,内容简洁明了,结构清晰。通过深入解析各类参数的功能和使用方法,旨在帮助读者更好地理解和掌握Shell编程技巧,提升实际操作能力。

这篇文章主要为大家展示了“Shell的参数有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell的参数有哪些”这篇文章吧。

Shell 参数


   传递参数:可以将外部的值传递到脚本的内部函数中,提高脚本的灵活性;可以添加脚本的使用选项,增加脚本的可定制性。

     Shell的参数有哪些

     上图显示了 Shell 中函数的参数传递:定义函数 testfunc();函数输出两个引用参数,$# 表示传入函数的参数个数,$@ 表示所有参数的内容。

Shell的参数有哪些

     值得注意的是,如果拥有的参数多余 9 个,则不能使用 $10 来引用第十个参数,必须先处理或者保存第一个参数($1),然后使用 shift 命令删除第一个参数,并将剩下的参数上移一位,则 $10 就变成了 $9,以此类推,而 $# 的值将被更新以反映剩余参数的个数。实际情况中,一般使用迭代的方法完成这个约束。
     许多 UNIX 程序遵循以下原则:从标准输入(standard input)读入,经过处理,从标准输出(standard output)输出,将异常及错误报告到标准错误(standard error)。这样的程序被称为过滤器(filter)。
    重定向符号 command>filename 会将 command 的标准输出重定向到 filename 中而不是打印在控制台,如果有同名 filename,则覆盖它,如果没有,则新建;command>>filename 会将 command 的标准输出以追加的形式重定向到 filename,不会覆盖同名文件;command    内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符为非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符指定待读写的文件。
   文件描述符表:用户区的一部分,除非通过使用文件描述符的函数,否则程序无法对其进行访问。对进程中每个打开的文件,它都包含一个条目。
    系统文件表:为系统中所有的进程共享。对每个活动的 open 都包含一个条目。每个系统文件表的条目都包含文件偏移量、访问模式(读、写、读写),以及指向它的文件描述符表的条目计数。每个进程的文件表在系统文件表中的区域都不重合,这样使每个进程都有它自己对该文件的当前偏移量。
   内存索引节点表:对系统中的每个活动的文件(被某个进程打开了),内存中的索引节点表都包含一个条目。几个系统文件表条目可能对应于同一个内存索引节点表(不同进程打开同一文件)。
    每个进程维护自己的文件描述符表,当进程调用文件描述符相关的函数或命令时,会对其进行修改操作;文件描述符表中的每一项指向系统文件表;系统文件表被所有进程共享,处于内核区,与内存中的索引节点表对应。因此,进程通过对文件描述符表的操作,访问被内存中的索引节点表控制的文件。
    标准输入的文件描述符是 0,标准输出的文件描述符是 1,标准错误的习惯描述符是 2。1> 表示重定向标准输出,2> 表示重定向标准错误,0<表示重定向标准输入,&> 表示重定向标准输出和标准错误。文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件,它与包括相关信息(如文件的打开模式、文件的位置类型、文件的初始类型等)的文件对象相关联,这些信息被称为文件的上下文。
    特殊文件:/dev/null 非常接近于一个只写文件,所有写入它的内容都会永远丢失,而且读取它的结果是空值,一般用于重定向标准输出或标准错误,或者清空某个文件的内容并且不改变文件权限。/dev/zero 会产生一个 null 流(二进制的 0 流,而不是 ASCII 类型),主要用来创建一个指定长度、并且初始化为空的文件,一般用作临时交换文件。
    
   常见 Linux 文件类型
    普通文件:用 ls -lh 查看某个文件的属性,第一个字符为 - 的文件。一般是用一些相关的应用程序创建,用 rm 命令删除。
    目录:第一个字符为 d 的文件。创建目录可以使用 mkdir 或 cp 命令,删除用 rm 或 rmdir。
    字符设备或块设备文件:第一个字符为 c 表示字符设备文件,b 表示块设备。用 mknode 创建,用 rm 删除。但是一般不自主创建,它们跟内核相关联的。
    套接口文件:第一个字符为 s 的文件。
    符号链接文件:第一个字符为 l 的文件。通过命令 “ln -s 源文件名 新文件名”创建。类似于 windows 系统中的快捷方式。

以上是“Shell的参数有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程笔记行业资讯频道!


推荐阅读
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 本文介绍如何通过注册表编辑器自定义和优化Windows文件右键菜单,包括删除不需要的菜单项、添加绿色版或非安装版软件以及将特定应用程序(如Sublime Text)添加到右键菜单中。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 解决U盘安装系统后无法重启的问题
    本文详细探讨了运维新手常遇到的U盘安装系统后无法正常重启的问题,提供了从问题分析到具体解决方案的完整步骤。通过理解Boot Loader的工作原理和正确配置启动项,帮助用户顺利解决问题。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
author-avatar
mobiledu2502914555
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有