Linux 变量

1.用户自定义变量(变量命名是有字母、数字、下划线组成,但是不能由数字开头)
(1)name=sod(定义一个值为sod 的name变量)
(2)如果值有空格等特殊字符怎么办?
    name='sod yu' 或者使用 name="sod yu" 这里用单引号或者双引号
(3)那么单引号与双引号的区别是什么呢?
 当我们要修改一个变量,要在原来变量基础上修改。
 如:name=sod,现在想修改name 为sodyu
 name=$nameyu这样可以吗?不行,name='$name'yu这样可以吗?还是不可以
 name="$name"yu 或者 name=${name}yu ,也就是单引号会把变量作为一般字符串看待
(1)查询本地变量:
   set命令可以查询当前的环境变量
(2)删除变量
   unset 变量名   如 unset name
2.环境变量
用户自定义变量只能在当前的shell中生效,而环境变量会在当前的shell和这个shell的
子shell中生效,如果把环境变量写入相应的配置文件中,那么这个环境变量就会在所有的
shell中生效
将一个变量声明为环境变量的方法:
 定义一个变量:   name=sodyu
 声明为环境变量: export name 那么name在后来起的子进程中还可以使用
但是用export声明的环境变量只是一次有效,重新登录后就会失效。
如果想一直有效,那么需要修改配置文件,这里不对配置文件做解释,只列出跟环境变量有关的
配置文件:
/etc/profile,/etc/profile.d/*.sh,/etc/bashrc在这几个文件中的环境变量对所有登录用户都生效
~/.bash_profile,~/.bashrc几个是针对对当前用户的环境变量
修改配置文件后可以使用:source 配置文件  使其生效
(1)查询环境变量:
   env 命令可以查询当前的环境变量
(2)删除环境变量
   unset 变量名

3.位置变量
$n  n为数字,$0代表 脚本名称,$1之后的为传递的参数,十以上的需要用{}括起来,如:{$10}
$*  代表所有的参数,但是会把参数看为一个整体,如果在脚本里使用循环遍历参数是需要分隔的
$@  代表命令行中所有的参数,但是每个参数会分别对待,可以用for循环来遍历每个参数。
$#  代表命令行中所有参数的个数
使用方式:
脚本 参数1 参数2 参数3

4.预定义变量
 
$? 表示最后一次执行命令的状态。如果是0代表上一次命令执行正确,如果是非0则证明执行不正确。
$$ 当前进程的进程号(PID)(可以使用echo 看一下)
$! 后台运行的最后一个进程的进程号 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值