1、在Bash中,每一个变量的值都是字符串
2、查看某个进程的环境变量
cat /proc/$PID/environ | tr '\0' '\n'
3、变量赋值
3.1、var=value,注意var = value不是赋值操作,而是相等操作
3.2、若value包含任何空白字符,则必须使用单引号或者双引号
4、打印变量
[root@client02 978]# var=value
[root@client02 978]# echo $var
value
[root@client02 978]# echo ${var}
value
5、在echo或printf中若要引用变量,则要使用双引号
[root@client02 1]# fruit=apple
[root@client02 1]# echo "we have five $fruit(s)"
we have five apple(s)
6、环境变量
6.1、环境变量是未在当前进程中定义,从父进程继承过来的变量
6.2、export用来设置环境变量,设置之后,从当前shell脚本执行的任何应用程序都会继承这个变量
6.3、在给出所要执行的命令后,shell会自动在PATH环境变量所包含的目录列表中,查找对应的可执行文件
7、获得变量长度
[root@client02 1]# var=124hello
[root@client02 1]# length=${#var}
[root@client02 1]# echo $length
8
[root@client02 1]# echo ${#var}
8
8、常用环境变量
[root@client02 1]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@client02 1]# echo $HOME
/root
[root@client02 1]# echo $SHELL
/bin/bash
[root@client02 1]# echo $UID
0
9、set、env和export的区别
9.1、set显示当前shell的变量(私有变量),包括当前用户的变量,不同类的shell有不同的私有变量,bash、ksh、csh的shell私有变量都不同
9.2、env显示当前用户的变量
9.3、export显示当前导出成用户变量的shell变量
10、通过设置PS1变量可以设置Bash提示字符串
11、使用函数添加环境变量
[root@client02 ~]# prepend() { [ -d "$2" ] && eval $1=\"$2':'\$$1\" && export $1; }
[root@client02 ~]# T1=/home
[root@client02 ~]# prepend T1 /root
[root@client02 ~]# echo $T1
/root:/home
但若是T1初始值为空,结果如下
[root@client02 ~]# T1=
[root@client02 ~]# echo $T1
 
[root@client02 ~]# prepend T1 /root
[root@client02 ~]# echo $T1
/root:
需要增加一个判断,引入shell参数扩展的形式
${param:+expr}
若param有值且不为空,则使用expr的值
[root@client02 ~]# prepend() { [ -d "$2" ] && eval $1=\"$2\$\{$1:+':'\$$1\}\" && export $1; }
[root@client02 ~]# T1=
[root@client02 ~]# prepend T1 /root
[root@client02 ~]# echo $T1
/root

Shell学习——变量的更多相关文章

  1. Shell学习之环境变量配置文件(三)

    Shell学习之环境变量配置文件 目录 环境变量配置文件简介 环境变量配置文件作用 其他配置文件和登录信息 环境变量配置文件简介 环境变量配置文件简介 环境变量配置文件中主要是定义对系统操作环境生效的 ...

  2. Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...

  3. Shell学习小结 - 深入认识变量

    移动端访问不佳,请访问我的个人博客 变量的命名 对于初学者来说,可以简单的理解为,变量就是保存在计算机内存中的一系列的键值对. 列如: str="hello" 这里的str就是变量 ...

  4. 【转】shell学习笔记(二) ——shell变量

    在shell中有3种变量:系统变量,环境变量和用户变量,其中系统变量在对参数判断和命令返回值判断时会使用,环境变量主要是在程序运行时需要设置,用户变量在编程过程中使用量最多. 1 系统变量  变量名 ...

  5. Shell学习(二)——变量和基本数据类型

    参考博客: [1]LinuxShell脚本--变量和数据类型 [2]shell只读变量删除 一.变量 定义变量的语法 定义变量时,变量名和变量值之间使用"="分隔,并且等号两边不能 ...

  6. [Bash Shell] Shell学习笔记

    1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...

  7. shell学习总结之自定义函数

    shell学习总结之自定义函数 Myfun (){ echo -n "now i is $i " ! [ "$i" ] && exit ; ec ...

  8. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  9. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

随机推荐

  1. input type="image" 提交表单

    提到<input type="image"  />,说起来有些惭愧.之前的工作基本每周都要制作两到三个注册用户的网页.其中就用它提交表单. 那个时候我想当然的以为这是用 ...

  2. Eureka与ZooKeeper 的比较

    Eureka的优势 1.在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举leader的过程:客户端请求会自动切换到新的Eureka节点:当宕机的服务器重新恢复 ...

  3. js的垃圾收集机制以及写代码如何处理

    程序都自己的内存,一旦内存过多就会清楚以前的缓存.所以,在写代码的时候,不要仅仅只会推变量到栈中,还要会将变量从栈中释放. 那么问题来了,我们应该如何将内存从栈中释放呢? 要释放变量,那就要从java ...

  4. php支付走过的坑(支付宝篇 注册 秘钥 环境等等配置)

    支付这东西,说容易也容易,说难也难 代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档 十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付 (api文档 ...

  5. Windows到Ubuntu免密登陆

    Windows到Ubuntu免密登陆 首先检查C盘用户文件夹下是否有.ssh文件夹,同时检查该文件夹中是否有至少两个文件,一个是xxx_rsa和xxx_rsa.pub,一个是私钥文件一个是公钥文件. ...

  6. JSP中的Property 'name' not found on type java.lang.String

    如果是在forEach中出现. 那么看下items里是不是没有el表达式,只是个字符串. 今天犯了好几次. 特此记录

  7. Struts2_HelloWorld_7_2

    第一个程序的流程图: Struts2.x 的作用:把请求和展现分开.

  8. 拼接sql语句时拼接空字符串报sql错误

    先上代码(php): $id_card=""; $sql = "select * from people where id_card=".$id_card; 看 ...

  9. 洛谷 P1509 找啊找啊找GF

    题目背景 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." "诶,别再见啊..." 七夕...七夕...七夕这个日子,对于sqybi这 ...

  10. PHP : 封装跳转函数,实现三个页面的跳转

    具体实现:有a,b两个页面,一个跳转页面c,在a执行完后先进行c页面的提示,再跳转到b 1.文件设计: 2.c页面封装方法内容(function.php): a页面内容(a.html): a页面的后台 ...