热门标签 | 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的参数有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程笔记行业资讯频道!


推荐阅读
  • PHP中元素的计量单位是什么? ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用
    深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用 ... [详细]
  • 本文详细探讨了OpenCV中人脸检测算法的实现原理与代码结构。通过分析核心函数和关键步骤,揭示了OpenCV如何高效地进行人脸检测。文章不仅提供了代码示例,还深入解释了算法背后的数学模型和优化技巧,为开发者提供了全面的理解和实用的参考。 ... [详细]
  • 深入解析Netty:基础理论与IO模型概述
    深入解析Netty:基础理论与IO模型概述 ... [详细]
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • Java服务问题快速定位与解决策略全面指南 ... [详细]
  • 如何利用Python脚本实现钉钉自动化考勤打卡
    本文详细探讨了利用Python脚本实现钉钉自动化考勤打卡的方法。通过具体实例操作,解决了很多用户在实际应用中遇到的难题,帮助读者高效掌握这一实用技能。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • jQuery插件验证与屏幕键盘功能的集成解决方案
    本文介绍了一种集成了验证功能和屏幕键盘的jQuery插件解决方案。该插件不仅提供了强大的表单验证功能,还引入了一个高度可定制的屏幕键盘,以增强用户体验。通过这一集成方案,开发者可以轻松实现复杂的表单验证逻辑,并为用户提供便捷的输入方式,特别适用于移动设备或特殊输入场景。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 本课程详细介绍了如何使用Python Flask框架从零开始构建鱼书应用,涵盖高级编程技巧和实战项目。通过视频教学,学员将学习到Flask的高效用法,包括数据库事务处理和书籍交易模型的实现。特别感谢AI资源网提供的课程下载支持。 ... [详细]
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社区 版权所有