bash学习之变量的显示和设置
显示变量:echo $MAIL或者 echo ${MAIL}
[CJP@CJP ~]$ echo $MAIL
/var/spool/mail/CJP
[CJP@CJP ~]$ echo ${MAIL}
/var/spool/mail/CJP
设置变量:用等号(=)赋值就可以,可以实现设置以及修改
[CJP@CJP ~]$ myname=CJP
[CJP@CJP ~]$ echo $myname
CJP
[CJP@CJP ~]$ myname=CJP2
[CJP@CJP ~]$ echo $myname
CJP2
变量设置的一些规则:
- a、等号两边不能直接接空格,如 myname = CJP,会出现
[CJP@CJP ~]$ myname = CJP
bash: myname: command not found
[CJP@CJP ~]$ myname=CJP CJP2
bash: CJP2: command not found
- b、变量名称只能是英文和数字,但是开头字符不能是数字
[CJP@CJP ~]$ 2myname=CJP
bash: 2myname=CJP: command not found
- c、变量内容如果有空格,可以使用双引号或者单引号将内容结合起来
双引号内特殊字符如$,可以保持原有的特性
[CJP@CJP ~]$ var="language is $LANG"
[CJP@CJP ~]$ echo $var
language is zh_CN.utf8
变量内容存在单引号的时候,用双引号
[CJP@CJP ~]$ name=CJP's name
>
> ^C
[CJP@CJP ~]$ name='CJP's name'
> ^C
[CJP@CJP ~]$ name="CJP's name"
[CJP@CJP ~]$ echo $name
CJP's name
单引号内特殊字符是纯文本
[CJP@CJP ~]$ var='language is $LANG'
[CJP@CJP ~]$ echo $var
language is $LANG
- d、可用转意字符“\”将特殊字符([ENTER],$,\,!,空格等)变成一般字符
[CJP@CJP ~]$ var=\$
[CJP@CJP ~]$ echo $var
$
[CJP@CJP ~]$ name=CJP\'s\ name
[CJP@CJP ~]$ echo $name
CJP's name
- e、当一串命令中需要得到其他命令提供的信息,可以使用反单引`command`或者$(command)
[CJP@CJP ~]$ path=`echo $PATH`
[CJP@CJP ~]$ echo $path
/home/CJP/qtsdk-2010.05/qt/bin:/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/CJP/bin
[CJP@CJP ~]$ path=$(echo $PATH)
[CJP@CJP ~]$ echo $path
/home/CJP/qtsdk-2010.05/qt/bin:/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/CJP/bin
[CJP@CJP ~]$ version=$(uname -r)
[CJP@CJP ~]$ echo $version
2.6.32-220.el6.i686
进入目前内核的模块目录
[CJP@CJP ~]$ cd /lib/modules/$(uname -r)/kernel
[CJP@CJP kernel]$
或者
[CJP@CJP ~]$ cd /lib/modules/`uname -r`/kernel
[CJP@CJP kernel]$
- f、为了增加变量内容,可用 “$var” 或者 ${var}累加内容
[CJP@CJP ~]$ var=C
[CJP@CJP ~]$ var="$var"JP
[CJP@CJP ~]$ echo $var
CJP
[CJP@CJP ~]$ var=${var}cjp
[CJP@CJP ~]$ echo $var
CJPcjp
- g、变量如果要在其他子进程中执行,需要通过export使变量变成环境变量
[CJP@CJP ~]$ name=CJP
[CJP@CJP ~]$ bash ==进入子进程
[CJP@CJP ~]$ echo $name
==没有变量内容
[CJP@CJP ~]$ exit ==离开子进程
exit
[CJP@CJP ~]$ export name ==设置环境变量
[CJP@CJP ~]$ bash
[CJP@CJP ~]$ echo $name
CJP
[CJP@CJP ~]$ exit
exit
注:子进程(在目前的shell下打开新的shell,新的shell就是子进程)
- h、取消变量可以使用unset
[CJP@CJP ~]$ echo $var
CJPcjp
[CJP@CJP ~]$ unset var
[CJP@CJP ~]$ echo $var
[CJP@CJP ~]$
bash学习之变量的显示和设置的更多相关文章
- Shell--变量的显示与设置、环境变量、语系变量
1.变量的显示与设置:echo,unsetecho:显示一段文字,也可以读出变量内容并打印出来 格式echo $变量或者echo ${变量}语 法:echo [-neE][字符串]或 echo [- ...
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- 学习鸟哥私房菜--linux bash 的环境变量ps1设置
bash里边的变量ps1是用户平时的提示符,系统默认为[username@host 工作目录]$.关于ps1的相关介绍详见:http://www.cnblogs.com/starspace/archi ...
- Windows下环境变量显示、设置或删除操作详情
显示.设置或删除 cmd.exe 环境变量. SET [variable=[string]] variable 指定环境变量名. string 指定要指派给变量的一系列字符串. 要显示当前环境变量,键 ...
- BASH内置变量
BASH内置变量 ().BASH 作用:bash的完整路径.默认为/bin/bash ().BASH_ENV 作用:仅在非交互模式中适用.在执行shell脚本时,会先检查该变量是否指定了启动 脚本,若 ...
- Bash中的变量
Bash中的变量1.用户定义的变量变量的定义 用户定义的变量有字母数字及下划线组成,并且变量名的第一个字符不能为数字. 与其它UNIX名字一样,变量名是大小写敏感的. 对于变量 ...
- BASH 学习笔记小结
1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...
- 【Linux】linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法
linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法 linux bash shell之变量替换::=句法.=句法.:-句法.-句法. ...
- Linux命令之hostname - 显示或设置主机名
我使用过的Linux命令之hostname - 显示或设置主机名 本文链接:http://codingstandards.iteye.com/blog/804648 (转载请注明出处) 用途说明 ...
随机推荐
- 原创:js代码, 让dedecms支持Tag选择, 添加内容更为方便,不用手输Tag
dedecms在编辑修改内容时,TAG标签需要手动输,中文的Tag, 中间还得用半角字符','分隔, 输入法切来切去很不方便, 于是动手改后台代码, 利用后台的tags_main.php, 让d ...
- IE下JS接受ActiveX控件方法
1.常规写法 <SCRIPT type="text/javascript" FOR="activexID" EVENT="onXXXevent( ...
- mybatis+spring+struts2框架整合
近期公司要开发新的项目,要用struts2+mybatis+spring框架,所以学习了下,来自己的博客发表下,希望能给大家带来帮助!下边我把我的myschool开发的源代码以及数据库贴出来! 开 ...
- [Papers]NSE, $u_3$, Lebesgue space [NNP, QM, 2002; Zhou, JMPA, 2005]
$$\bex u_3\in L^p(0,T;L^q(\bbR^3)),\quad \frac{2}{p}+\frac{3}{q}=\frac{1}{2},\quad 6< q\leq \inft ...
- duilib combo控件,当鼠标滚动时下拉列表自动关闭的bug的修复
转载请说明出处,谢谢~~ 群里有朋友提到了使用Combo控件时,当下拉列表出现,此时鼠标滚轮滚动,下拉列表就自动消失了.我看了一下源码,这个bug的修复很简单. CComboUI控件被单击时创建CCo ...
- 【算法与数据结构】字符串匹配之KMP算法
// KMP.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include < ...
- g++安装 Gnome/Gtk+开发库 的 环境安装(安装widgets的必要条件)
sudo yum install gcc-c++ 我在更新软件源后,看了看最新版的GTK开发版是3.0的. 所以,基本可以照搬. sudo yum -t install gtk3 sudo yum - ...
- 【转】javascript-图片预加载技术
1,脚本代码: /** * 图片头数据加载就绪事件 - 更快获取图片尺寸 * @version 2011.05.27 * @author TangBin * @see http://www.plane ...
- bzoj 1576 [Usaco2009 Jan]安全路经Travel(树链剖分,线段树)
[题意] 给定一个无向图,找到1-i所有的次短路经,要求与最短路径的最后一条边不重叠. [思路] 首先用dijkstra算法构造以1为根的最短路树. 将一条无向边看作两条有向边,考察一条不在最短路树上 ...
- ldconfig报错 :libstdc++.so.6.0.18-gdb.py不是一个elf文件
今天安装wxWidgets,输入ldconfig竟然提示 /usr/lib64/libstdc++.so.6.0.18-gdb.py 不是一个elf文件,开头魔数错误 摸不着头脑,上网搜了一下,有说是 ...