shell变量

13 篇文章 0 订阅

1. shell变量


shell变量分为用户定义变量和环境变量。
一般情况下,自定义变量使用小写,环境变量用大写。

2. 自定义变量

2.1 变量定义

用户定义变量,变量名称由字母,数字,下划线组成,有字母或下划线开头。
[work@www sh]$ myvar='hello world'
[work@www sh]$ echo $myvar;
hello world
规则:
1. 等号两边不能有空格
2. 如果变量内容由空格,引号等特殊字符,两边需要用“或‘
3. ' 单引号将特殊字符视为一般字符,纯文本
4. ” 双引号保留$等的原本特性
5. 使用 \ 转义字符,将特殊字符变为一般字符
6. 如果里面包含要执行的命令,使用反引号 ` ,或 $ 。
[work@www sh]$ myvar2='${myvar}test'  
[work@www sh]$ echo $myvar2         
${myvar}test
[work@www sh]$ myvar3="${myvar}test" 
[work@www sh]$ echo $myvar3
hello worldtest


[work@www sh]$ version="$(uname -r)"
[work@www sh]$ echo $version
2.6.18.8
[work@www sh]$ version="`uname -r`"  
[work@www sh]$ echo $version
2.6.18.8

[work@www sh]$ version="$version:number" 
[work@www sh]$ echo $version
2.6.18.8:number

2.2 变量导入


在当前shell下,启动一个新shell,新shell为子进程。
父进程的自定义变量不能在子进程中使用。
使用export 导入父进程变量
[work@www sh]$ bash
[work@www sh]$ echo $version

[work@www sh]$ exit
exit
[work@www sh]$ export version
[work@www sh]$ bash
[work@www sh]$ echo $version
2.6.18.8:number

2.3 取消变量


删除变量使用unset
[work@www sh]$ echo $version
2.6.18.8:number
[work@www sh]$ unset version
[work@www sh]$ echo $version
 
[work@www sh]$

3. 环境变量


环境变量的查看: 使用 env 或 export 命令
[work@www sh]$ env
MANPATH=/usr/local/share/man:/usr/share/man/en  
HOSTNAME=***.com
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
USER=work
LS_COLORS=no=00:fi=00:di=01;34:
MAIL=/var/spool/mail/work
PATH=/opt/bin:/home/opt/bin:/opt/bin:/home/opt/bin
INPUTRC=/etc/inputrc
PWD=/home/work/gang/sh
LANG=en_US
HOME=/home/work
LOGNAME=work
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
HISTTIMEFORMAT=%y-%m-%d %H:%M:%S 
_=/bin/env
使用 set 命令,可以显示环境变量和自定义变量。
里面包含:
命令提示符: PS1='[\u@\W]\$ '
[work@~]$ cd /home
[work@home]$ PS1='[\u@\d \t]\$ ' 
[work@Sat Oct 18 17:42:03]$ 

$ 本身是个变量,表示本shell的pid
? 上个命令返回码
[work@Sat Oct 18 17:44:41]$ echo $$
6820
[work@Sat Oct 18 17:44:50]$ echo $?
0
[work@Sat Oct 18 17:44:58]$ var = 2
-bash: var: command not found
[work@Sat Oct 18 17:45:11]$ echo $?
127
[work@Sat Oct 18 17:45:15]$ 

4. 变量键盘读取


read从键盘读取数据,赋值给变量。
read [-pt] var 
-p : 接提示符
-t : 后面等待时间,如果不输入,则自动略过。
[work@Sat Oct 18 17:57:41]$ read myvar 
this is from keyboard.
[work@Sat Oct 18 17:58:02]$ echo $myvar
this is from keyboard.
[work@Sat Oct 18 17:58:06]$ read -p "Please input your data : " -t 30 mydata
Please input your data : my data is one.
[work@Sat Oct 18 17:59:12]$ echo $mydata
my data is one.
[work@Sat Oct 18 17:59:18]$ 

5. 数组变量

定义格式:
var[index]=content
[work@Sat Oct 18 18:03:26]$ var[1]='one'    
[work@Sat Oct 18 18:03:43]$ var[2]='two'
[work@Sat Oct 18 18:04:04]$ echo "${var[1]}, ${var[2]}"
one, two

6. 声明变量类型


使用declare
declare [-aixr] variable
-a : 后面变量声明为数组类型
-i : 数字类型
-x: 将变量变成环境变量
-r : 声明为只读 readonly ,不能修改。
[work@Sat Oct 18 18:04:33]$ sum=1+2
[work@Sat Oct 18 18:07:53]$ echo $sum
1+2
[work@Sat Oct 18 18:07:58]$ declare -i sum=1+2
[work@Sat Oct 18 18:08:10]$ echo $sum
3
[work@Sat Oct 18 18:08:13]$ 

地址:  http://blog.csdn.net/yonggang7/article/details/40212227

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值