shell编程学习笔记2--自定义变量,系统变量,语系变量,位置参数
总结: 定义变量: 1、变量中的=俩边不能有空格 2、变量值中有空格就加引号(具体用什么引号,需要参考shell中的特殊符号,因为引号就是特殊符号) 调用变量: 1、输出调用时,一定记得加$。如echo $x 变量叠加(类似于重新赋值是追加,而不是覆盖): 1、除非赋值是''(空字符串可以清空变量的值) 2、需要将被调用的变量拿双引括起来,单引不能解析 删除变量: 1、变量名前不要加$,$是调用 环境变量与用户自定义变量的区别: 1、环境变量是全局的 2、用户自定义变量是局部的(当前shell生效,子shell中无效) bash变量与变量分类在bash中,变量默认的类型,都是字符串 1、用户自定义变量:自己定义的普通变量 2、环境变量:这种变量中主要保存的是和系统操作环境相关的数据,环境变量也可以自定义(一般是给脚本传值),但是对系统生效的环境变量名和变量作用是固定的(但变量的值可以改变) 总结:环境变量分2种,一种是系统的,一种是自定义的 3、位置参数变量(是预定义变量中的一种):这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的 4、预定义变量:是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。 总结: 预定义变量最严格,只能改不能新增; 环境变量较严格,能改值和新增; 自定义变量最松散,就是普通编程语言的变量,只是bash中的类型是字符串 变量调用:语法:$变量名变量叠加: 语法:x="$x"456 或 x=${x}789 注意:重新赋值时需要调用变量名(看$),被调用的变量名要拿双引或{}括起来 重新赋值是在后面追加,而不是覆盖 变量查看:语法:set [选项] #查询系统下所有已经生效的变量,包括默认的环境变量、自定义变量 -u #调用未声明的变量时会报错(默认无任何提示) 注意:Set中除了我们自己定义的,剩下的都是系统默认已经存在的环境变量 变量删除:语法:unset 变量名 用户自定义变量:语法:变量名=变量值 注意:变量的值有空格,必须加引号(至于加双引还是加单引,需要参考其他特殊符号) 环境变量环境变量与用户自定义变量的区别: 1、环境变量是全局的 2、用户自定义变量是局部的(当前shell生效,子shell中无效) 注意:退出子shell用exit。是否退出成功用pstree看看 环境变量的特点:对系统生效的环境变量名和变量作用是固定的 环境变量也分2种:1、用户自定义的 2、系统的 设置用户自定义的环境变量(比普通自定义的多个export):语法:export 变量名=变量值 或(也可以先定义变量,在声明) 变量名=变量值 export 变量名 注意:调用环境变量也是echo $变量名 删除也是unset 变量名(系统的环境变量无法删除) 子shell中不能删除父shell定义的 查看环境变量:> set #查看所有变量 > env #查看环境变量 常用的系统环境变量:LS_COLORS当前操作环境的颜色 MAIL 邮箱地址 PWD 当前所在目录 LANG 语言环境 PATH 系统搜索命令的路径 注意:环境变量名写大写,因为他会对所有的子shell生效,方便区分 PATH环境变量:PATH变量 #系统查找命令的路径 echo $PATH #查看PATH环境变量 PATH="$PATH":/root/sh #增加PATH的值(这就是修改,此修改是追加,不是覆盖) 建议用变量值的叠加(自己找个地方建个目录,专门放这些文件,然后将路径添加到PATH变量中)除非改文件,否则是临时的,重启后就没有了 ps1环境变量:bash语言变量> locale #查询当前系统语系 -LANG:定义系统主语系的变量 -LC_ALL:定义整体语系的变量 > echo $LANG #查看系统当前语系 > locale -a | more #查看linux支持的所有语系 > cat -n /etc/sysconfig/i18n #查询系统默认语系 位置参数变量(给脚本传参用的):例子1:执行方式 ./.sh文件 参数1 参数2 把in后面的数,依次赋值给i($@相当于是正常循环) 注意:$*和$@要用双引括起来 预定义变量:(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |