热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

LinuxShell变量使用

文章标题:LinuxShell变量使用。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

        一、本地变量的使用
       
        本地变量就如同局部变量一样,只在本SHELL中起作用。它不会影响到其他SHELL中的变量。

        1。显示变量值
        可以使用echo命令。需要注意的是,使用变量的时候必须在变量名前加上$符号
        2。清除变量
        使用unset命令可以清除命令。
        3。显示所有本地SHELL变量
        SHELL中预定义了一些环境变量。要想显示这些命令,可以使用set命令。
        另外,用户自己已经定义过的本地变量也会在其中显示。
        4。测试变量是否已经赋值
        ${variable:-value}
        如果变量已经赋值,则使用该变量值。如果变量为空,则使用value。需要注意的是,value并不赋给variable。
        ${variable:=value}
        该表达式上面的区别就是,如果variable为空,则value赋给variable。

        如果需要检验变量是否为空,如果为空的话则显示带有系统错误信息,则使用下面的表达式:
        ${variable:?}
        如果需要显示自己定义的信息,则如下:
        ${variable:?"customed message "}

        5。设置只读变量
        使用readonly可以将变量定义成只读。
        readonly variable
        单独执行readonly可以显示所有的只读变量。

        二、环境变量
       
        环境变量用于所有的用户进程。在Linux中,登陆进程称为父进程,shell中执行的用户程序均称为子进程。
        环境变量可以在命令行中设置,但用户注销时这些值将丢失。因此最好在$HOME/目录下的.profile中定义。
        传统上环境变量均为大写。环境变量应用于用户进程之前,必须用export命令导出。设置方法与本地变量设置方法相同。
        1。显示环境变量
        使用env命令可以察看所有环境变量
        2。潜入SHELL变量
        EXINIT保存使用vi编辑器的初始化选项。比如要显示行号,则如下:
        EXINIT='set nu';export EXINIT
        HOME:用于记录用户的主目录;
        IFS:用作shell指定的缺省域分隔符。
        PATH:保存进行命令或脚本查找的目录顺序。可以在.profile中进行设置。
        3。将变量导出到子进程
        在父脚本中使用export命令可以将变量导出,这样子脚本便可以知道该变量的值。

        三、位置变量参数
       
        在向脚本传递参数时,可以使用此位置变量来获取参数。
        他们分别是:
        $0:脚本名字。此变量包含地址,可以使用basename $0获得脚本名称。
        $1:第一个参数
        $2,$3,$4,$5,...一次类推。

        四、特定变量参数
       
        一些脚本运行的相关控制信息
        $# 传递到脚本的参数个数
        $* 以一个单字符串显示所有向脚本传递的参数
        $$ 脚本运行的ID号
        $! 后台运行的最后一个进程的ID号
        $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数。
        $- 显示shell使用的当前选项。
        $? 显示最后命令的推出状况。0表示没有错误。


推荐阅读
  • grep、sed、awk一、grep的用法1、grep简介grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep包 ... [详细]
  • 本文档详细规划了从基础到高级的软件测试学习路径,包括但不限于测试基础、Linux和数据库、功能测试、Python编程、接口测试、性能测试、金融项目实战、UI自动化测试等内容,旨在为初学者和进阶者提供全面的学习指导。 ... [详细]
  • Hexdump是一个强大的工具,用于查看和分析二进制文件的内容。本文将详细介绍其功能、常用参数及实际应用案例。 ... [详细]
  • 本文详细介绍了如何在VMware环境下安装CentOS 7 Minimal,并成功配置GNOME桌面环境的过程。包括解决网络连接问题和设置默认图形界面等关键步骤。 ... [详细]
  • 解决CSS因MIME类型不匹配导致的加载失败问题
    本文详细介绍了在Web开发过程中,遇到CSS文件因MIME类型不匹配而无法正确加载的问题及其解决方案,适合前端开发者阅读。 ... [详细]
  • 本文探讨了如何利用脚本文件高效管理Oracle数据库,包括脚本文件的创建、编辑及运行方法,旨在为数据库管理人员提供实用指导。 ... [详细]
  • 7000字文章一键排版技巧与实践
    本文探讨了一种高效的文章排版方法,特别适合文字密集型内容,如原创公众号文章。作者通过个人经历,分享了从学习Markdown到利用mdnice实现一键排版的过程,旨在帮助更多内容创作者提升工作效率。 ... [详细]
  • 本文详细介绍了如何在局域网中设置打印机共享,帮助解决办公环境中常见的打印机故障问题。 ... [详细]
  • 剑指Offer算法题解析:实现带Min方法的栈
    本文深入探讨了《剑指Offer》系列中的一道经典算法题——设计一个支持常数时间内检索最小元素的栈。通过详细分析与代码示例,帮助读者理解并掌握这一问题的核心解法。 ... [详细]
  • 本文将介绍一个名为decorator的Python库,尽管已存在多年,但其知名度并不高。本文假设读者已了解装饰器的基本概念,重点探讨如何利用decorator库简化装饰器的编写过程,以及它如何解决装饰器带来的签名问题。 ... [详细]
  • 精选10款jQuery内联编辑插件
    本文精选了10款优秀的jQuery内联编辑插件,旨在帮助开发者实现页面内容的动态管理和即时编辑,提升用户体验。 ... [详细]
  • 模型-视图-控制器(MVC)模式在软件开发中极为普遍,不仅被广泛应用于Web框架,也在GUI客户端中得到应用。然而,这种模式的实际应用可能并非完全遵循原初的设计理念,有时更像是一个营销概念。本文将深入探讨MVC及其相关模式MVP、MVVM和MVA的异同,以及它们各自的应用场景。 ... [详细]
  • 本文提供了一种有效的方法来解决在VMware虚拟机中安装Windows 10时遇到的OOBE(Out of Box Experience)区域问题,包括激活管理员账户、移除首次启动提示和调整注册表设置的具体步骤。 ... [详细]
  • Nibblestutotials.net教程 – Blend  Silverlight1系列之Button Basic
    Basic:createonebutton文中三部分所用资源及代码下载:part1,part2,part3Buttonsbasicpart1:drawingNibbl ... [详细]
  • 深入解析 Git 代码提交流程及常见问题处理
    本文详细阐述了使用 Git 进行代码提交的具体步骤,并提供了遇到常见问题时的解决方案,旨在帮助开发者更加高效地管理代码。 ... [详细]
author-avatar
longyuyuyu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有