shell 变量

发布时间:2024年01月23日
  • 用户自定义变量:这是由用户自己创建和赋值的变量,它们可以在当前shell会话中使用,也可以导出为环境变量供其他程序使用。用户自定义变量的命名规则是:
    • 只包含字母、数字和下划线,不能以数字开头,不能包含其他特殊字符。
    • 避免使用shell的关键字或命令作为变量名,以免引起混淆。
    • 避免使用空格或等号两侧有空格,这会导致变量赋值失败。
    • 变量名区分大小写,建议使用大写字母表示常量,小写字母表示普通变量。
  • 环境变量:这是由系统或用户设置的一些特殊变量,它们可以影响shell的行为和执行环境,也可以被其他程序调用。环境变量通常使用大写字母表示,可以使用set命令查看当前的所有环境变量,也可以使用export命令设置或删除环境变量。一些常见的环境变量有:
    • PATH:表示系统搜索可执行文件的路径,用冒号分隔多个目录。
    • HOME:表示当前用户的主目录,用于存放用户的个人文件和配置。
    • SHELL:表示当前用户使用的shell程序,如/bin/bash
    • PS1:表示shell的提示符,可以自定义显示的内容和格式。
    • LANG:表示当前用户使用的语言和字符编码,如zh_CN.UTF-8
  • 位置参数变量:这是一种特殊的变量,它们用来表示命令行上的参数。例如,如果你执行一个脚本./test.sh 100 200,那么你可以在test.sh中使用位置参数变量来获取参数的值。位置参数变量的基本语法是:
    • $0表示命令或脚本本身,例如./test.sh
    • $1表示第一个参数,例如100
    • $2表示第二个参数,例如200
    • 以此类推,$n表示第n个参数,如果n大于9,需要用大括号括起来,例如${10}表示第10个参数。
    • $*表示所有的参数,作为一个整体,例如100 200
    • $@表示所有的参数,每个参数独立,例如100200
    • $#表示参数的个数,例如2
  • 预定义变量:这是一些由shell程序预先定义好的变量,它们可以反映一些系统或shell的状态或信息,也可以用来控制一些shell的行为。一些常见的预定义变量有:
    • $?表示上一个命令的退出状态,如果为0表示成功,如果非0表示失败。
    • $!表示最后一个后台运行的进程的进程号,可以用来控制或监视后台进程。
    • $$表示当前shell的进程号,可以用来生成唯一的临时文件名。
    • $-表示当前shell的选项,可以用来判断当前shell是否处于交互模式或其他模式。
    • $IFS表示输入字段分隔符,用来指定命令行参数或文件内容的分隔符,默认为空格、制表符和换行符。

可以使用unset命令来删除变量或函数。unset命令的基本语法是:

  • unset [-fv] [变量或函数名称]
  • -f选项表示仅删除函数。
  • -v选项表示仅删除变量。

例如,如果你定义了一个变量name="lisi",你可以使用unset -v name来删除它。如果你定义了一个函数hello(),你可以使用unset -f hello来删除它。

注意,unset命令不能够删除具有只读属性的变量或环境变量。如果你试图删除一个只读变量,unset命令将打印一个错误消息,并返回一个非零的退出代码。

文章来源:https://blog.csdn.net/Mr_Black0_0/article/details/135762755
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。