Shell的变量

本文详细介绍了Shell编程中的变量使用,包括变量定义、只读变量、删除变量及变量的作用域,如局部、全局和环境变量。同时,讲解了Shell的字符串操作,如命令替换、长度计算和拼接,以及数组和字典列表的声明、访问和操作。
摘要由CSDN通过智能技术生成

1、变量

每个变量都存储一个值,值是可自定义的。

  • 变量的规范:
    1、命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
    2、不能使用bash里的关键字(可用help命令查看保留关键字)
    3、=符号两边不能有空格,因为系统会误以为是命令

  • 1.1 变量的定义

    变量名不加美元符号

#数字开头的变量,报错
[root@VM_0_6_centos ~]# 1mydata=123
-bash: 1mydata=123: command not found
#=符号两边存在着空格
[root@VM_0_6_centos ~]# mydata= 123
-bash: 123: command not found
#正确的定义变量
[root@VM_0_6_centos DCBreakfast]# my_data=test
  • 1.2 变量的使用$

    推荐给所有变量加上花括号。变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,并且容易人们识别。这里用到echo关键字1
[root@VM_0_6_centos DCBreakfast]# echo my_data
my_data
[root@VM_0_6_centos DCBreakfast]# echo ${my_data} 
test

  • 1.3 只读变量readonly

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

[root@VM_0_6_centos DCBreakfast]# onlyRead=test
[root@VM_0_6_centos DCBreakfast]# readonly onlyRead 
[root@VM_0_6_centos DCBreakfast]# onlyRead=York
-bash: onlyRead: readonly variable

  • 1.4 删除变量unset

[root@VM_0_6_centos DCBreakfast]# unset my_data 

2、变量的作用域

  • Shell有三种变量

    • 在函数内部使用的变量,这叫做局部变量(local variable);
    • 在当前 Shell 进程中使用的变量,这叫做全局变量(global variable);
    • Shell进程间共享的变量,这叫做环境变量(environment variable)
  • 2.1 Shell的局部变量local

    Shell也支持自定义函数,但是和Java、C#、Python的局部变量有点不一样,Shell函数定义的变量可以作用于全局,除非定义变量时使用关键字local

    [root@VM_0_6_centos ~]# vim myfun.sh #编写函数文件
    	#! /bin/bash
    	
    	#创建函数
    	function myfun(){
         
    		a=1
    		echo "没有关键字的a变量值是$a"
    		local b=3
    		echo "local b=$b"
    	}
    	#调用函数
    	myfun
    
    [root@VM_0_6_centos ~]# chmod u+x myfun.sh
    [root@VM_0_6_centos ~]# . myfun.sh # 执行文件
    	没有关键字的a变量值是1
    	local b=3	
    [root@VM_0_6_centos ~]# echo $a # 全局变量,在当前进程输出a的值正常
    1
    [root@VM_0_6_centos ~]# echo $b # 局部变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值