网站建设的成功经验,微网站设计方案,wordpress本地安装500,企业年金交了有好处吗变量和引用
2.1.深入认识变量
2.1.1.什么是变量 变量是在程序中保存用户数据的一段内存存储空间#xff0c;变量名是内存空间的首地址 变量三要素#xff1a;名称、类型、值 2.1.2.变量的名称 组成: 字母、数字、下划线组成#xff0c;不能以数字开头 变量名称的长… 变量和引用
2.1.深入认识变量
2.1.1.什么是变量 变量是在程序中保存用户数据的一段内存存储空间变量名是内存空间的首地址 变量三要素名称、类型、值 2.1.2.变量的名称 组成: 字母、数字、下划线组成不能以数字开头 变量名称的长度shell没有明确规定但是为了增加可读性建议使用较短的、见名知意的名称命名 则 首字符必须为字母:a-zA-Z 中间不能由空格可以使用下划线 () 不能使用标点符号 不能使用bash中关键字输入help查看bash的保留字 例:下面的变量名都是很好的选择 [rootserver ~]# JAVA_HOME/usr/bin/jvm/jre-1.6.0-openjdk.x86_64 [rootserver ~]# SUM0 [rootserver ~]# back_up/root 2.1.3.变量的类型 原则:shell是一种动态类型语言和弱类型语言变量是不分数据类型的统一都使用字符串存储但根据变量的上下文环境允许程序执行一些不同的操作如:比较、整数加减 shell的变量数据类型 [rootserver ~]# vim test1.sh x123 let x1 echo x$x[rootserver ~]# bash test1.sh x124 2.1.4.变量的定义 原则:直接使用不需要变量声明。格式:变量名变量的值 例: [rootserver ~]# vim test2.sh a1 bhello chello world bak_dir/mnt[rootserver ~]# bash test2.sh 前后不能收空格[rootserver ~]# a 3 bash: 3: command not found... [rootserver ~]# b 5 bash: b: command not found...字符串类型建议使用双引好作为定界符引起尤其是字符串中有空格[rootserver ~]# stu_namezhang sanbash: san: command not found... [rootserver ~]# stu_namezhang san [rootserver ~]# stu_namezhang san 2.1.5自定义变量 概念:上述以赋值形态形成的变量定义形式称为自定义变量 引用变量的值 $变量名 ${表达式或变量名) 例 [rootserver ~]# a1024 [rootserver ~]# echo $a 1024 [rootserver ~]# echo {$a} {1024} [rootserver ~]# echo ${a} 1024 查看变量 [rootserver ~]# set |more |grep a 2.1.6.环境变量全局变量 环境变量又称为全局变量可以在任意子shell生效环境变量又分为自定义环境变量和bash内置的环境变量用户退出命令后改变量会丢失若需要永久保存就必须写在文件中 定义环境变量 例 bash自带的全局变量 [rootserver ~]# vim /etc/profile [rootserver ~]# echo $PATH /root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin[rootserver ~]# echo $SHELL /bin/bash 自定义全局变量 法一export 环境变量值 [rootserver ~]# export back_dir1/home/fox 法二 变量名值 export 变量名 [rootserver ~]# NAMEzhangsan [rootserver ~]# export NAME 法三declare -X 变量名值 [rootserver ~]# declare -x AGE20 显示全局变量 [rootserver ~]# env [rootserver ~]# printenv [rootserver ~]# export 注意以上三者效果一样 注意:以上定义的环境变量都是临时的重启后会失效若要永久生效则需要写入到配置文件中 2.1.7 shell 环境变量存储的文件 bash shell 初始化文件有: /etc/profile、 ~/.bash_profil、 ~/bash_login、~/.profile、 ~/.bashrc、/etc/bashrc /etc/profile: 存放一些全局 (共有)变量不管哪个用户登录时都会读取该文件。通常设置一些Shell变量PATH,USER,HOSTNAME和HISTSIZE等 ~/.bash_profile: 每个账户都有只针对当前账户每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时该文件仅仅执行一次默认情况下,此文件通过脚本执行同目录下用户的.bashrc文件 ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取每个账户都有只针对当前账户当前账户专用的变量 /etc/bashrc: 为每一个运行bash shell的用户执行此文件当bash shell被打开时,该文件被 读取/etc/inputrc文件为特定的情况处理键盘映射执行顺序: /etc/profile--/etc/profile.d/*.sh-- ~/.bash profile --/etc/bashrc-.~/bashrc 2.1.8.位置变量 概念:当一条命令或脚本执行时后面可以跟多个参数可以使用位置变量来表示该参数 bash testl.sh hel1o world 123 456 当执行test1.sh 脚本时第一个参数为hello到第四个参数可以使用特殊的符号表示如:$1$2$3..... 常见的位置变量 $0 : 脚本名 $1-$9 : 1-9个参数 $[10} :10以上的参数需要大花括号括起 $* : 所有参数 $ : 所有参数 $#:参数个数 $$:当前进程的PID $! : 上一个后台进程的PID $? : 上一个命令的返回值状态码0为成功[rootserver ~]# vim test3.sh
echo 第一个位置的参数是:$1
echo 第二个位置的参数是:$2
echo 第四个位置的参数的:$4
echo 所有参数是:$*
echo 所有参数的:$
echo 参数个数是:$#
echo 当前脚本的进程PID值:$$
echo 当前脚本的文件名$0 [rootserver ~]# bash test3.sh a b c d e f g $* 与 $区别: 当S* 和 S 没有被引用的时候它们确实没有什么区别都会把位置参数当成一个个体$*会把所有位置参数当成一个整体(或者说当成一个单词)如果没有位置参数则S* 为空如果有两个位置参数并且IFS为空格时$*相当于$1 $2 $会把所有位置参数当成一个单独的字段如果没有位置参数 (S#为0)侧”S展开为空(不是空字符串而是空列表)如果存在一个位置参数则S相当于S1如果有两个参数则S相当于$1 $2等等 2.2.变量赋值和作用域
2.2.1.显示赋值:变量名变量值