Linux - Shell变量的配置守则
来源:互联网 发布:python适合初学者的书 编辑:程序博客网 时间:2024/06/05 02:31
变量的配置守则
变量与变量内容以一个等号『=』来连结,如下所示:
『myname=VBird』
等号两边不能直接接空格符,如下所示为错误:
『myname = VBird』或『myname=VBird Tsai』
变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:
『2myname=VBird』
变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来,但
双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:
『var="lang is $LANG"』则『echo $var』可得『lang is en_US』
单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:
『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』
可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符;
在一串命令中,还需要藉由其他的命令提供的信息,可以使用反单引号『`命令`』或 『$(命令)』。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本的配置:
『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』
若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容,如下所示:
『PATH="$PATH":/home/bin』
若该变量需要在其他子程序运行,则需要以 export 来使变量变成环境变量:
『export PATH』
通常大写字符为系统默认变量,自行配置变量可以使用小写字符,方便判断 (纯粹依照使用者兴趣与嗜好) ;
取消变量的方法为使用 unset :『unset 变量名称』例如取消 myname 的配置:
『unset myname』
范例一:配置一变量 name ,且内容为 VBird[root@www ~]# 12name=VBird-bash: 12name=VBird: command not found <==屏幕会显示错误!因为不能以数字开头![root@www ~]# name = VBird <==还是错误!因为有空白![root@www ~]# name=VBird <==OK 的啦!范例二:承上题,若变量内容为 VBird's name 呢,就是变量内容含有特殊符号时:[root@www ~]# name=VBird's name # 单引号与双引号必须要成对,在上面的配置中仅有一个单引号,因此当你按下 enter 后,# 你还可以继续输入变量内容。这与我们所需要的功能不同,失败啦!# 记得,失败后要复原请按下 [ctrl]-c 结束![root@www ~]# name="VBird's name" <==OK 的啦!# 命令是由左边向右找→,先遇到的引号先有用,因此如上所示,单引号会失效![root@www ~]# name='VBird's name' <==失败的啦!# 因为前两个单引号已成对,后面就多了一个不成对的单引号了!因此也就失败了![root@www ~]# name=VBird\'s\ name <==OK 的啦!# 利用反斜杠 (\) 跳脱特殊字符,例如单引号与空格键,这也是 OK 的啦!范例三:我要在 PATH 这个变量当中『累加』:/home/dmtsai/bin 这个目录[root@www ~]# PATH=$PATH:/home/dmtsai/bin[root@www ~]# PATH="$PATH":/home/dmtsai/bin[root@www ~]# PATH=${PATH}:/home/dmtsai/bin# 上面这三种格式在 PATH 里头的配置都是 OK 的!但是底下的例子就不见得啰!范例四:承范例三,我要将 name 的内容多出 "yes" 呢?[root@www ~]# name=$nameyes # 知道了吧?如果没有双引号,那么变量成了啥?name 的内容是 $nameyes 这个变量!# 呵呵!我们可没有配置过 nameyes 这个变量吶!所以,应该是底下这样才对![root@www ~]# name="$name"yes[root@www ~]# name=${name}yes <==以此例较佳!范例五:如何让我刚刚配置的 name=VBird 可以用在下个 shell 的程序?[root@www ~]# name=VBird[root@www ~]# bash <==进入到所谓的子程序[root@www ~]# echo $name <==子程序:再次的 echo 一下; <==嘿嘿!并没有刚刚配置的内容喔![root@www ~]# exit <==子程序:离开这个子程序[root@www ~]# export name[root@www ~]# bash <==进入到所谓的子程序[root@www ~]# echo $name <==子程序:在此运行!VBird <==看吧!出现配置值了![root@www ~]# exit <==子程序:离开这个子程序
范例六:如何进入到您目前核心的模块目录?[root@www ~]# cd /lib/modules/`uname -r`/kernel[root@www ~]# cd /lib/modules/$(uname -r)/kernel
范例七:取消刚刚配置的 name 这个变量内容[root@www ~]# unset name
- Linux - Shell变量的配置守则
- bash shell 变量的配置守则
- linux学习之十、变量的取用与配置:echo, 变量配置守则, unset
- Linux的shell变量
- linux shell 的变量
- 【Linux】Shell的变量
- Linux Shell变量的使用
- linux shell下的变量
- Linux Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- linux的shell中变量的含义
- Linux Shell变量的使用轻松学习
- Linux Shell编程的特殊变量
- linux中shell变量的含义解释
- Linux下SHELL的PS1变量简介
- linux shell 以$开头的几个变量
- 42 Linux bash shell的内部变量
- Linux学习之shell变量的运算
- Linux下SHELL的PS1变量简介
- UVa 515 King (差分约束+线性规划+判负圈)
- Symmetric Tree
- Python伪装浏览器请求爬虫豆瓣小组
- Prim算法
- C++中的组合模式
- Linux - Shell变量的配置守则
- 通过服务器实现客户端的相互通话。(需要导入jar包)论保存的重要性
- nginx 只允许指定IP访问
- Office2007完全卸载
- NYOJ71独木舟上的旅行(贪心)
- mysql 高可用 4
- Java汉字转换为拼音
- Android基础入门教程——4.1.2 Activity初窥门径
- 黑马程序员——单例设计模式