Chinaunix首页 | 论坛 | 博客
  • 博客访问: 385421
  • 博文数量: 96
  • 博客积分: 647
  • 博客等级: 上士
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-29 22:15
文章分类
文章存档

2015年(1)

2014年(10)

2013年(26)

2012年(59)

我的朋友

分类: LINUX

2012-09-30 15:36:05

1.set命令 可以查看和设置本地变量

2.readonly 查看本地只读变量
readonly variable-name 设置变量为只读变量

3.环境变量的设置在$HOME/.bash_profile (/etc/profile)中

4.export variable-name=value 设置变量为环境变量

5.env 查看所有环境变量

6.变量替换:
${var-name}显示实际值到var-name
${var-name:+value}如果设置了var-name,则显示其值为value,否则为空
${var-nmae:?value}如果未设置var-name,显示用户定义错误信息value
${var-name:-value}如果未设置var-name,显示其值为value
${var-nmae:=value}如果未设置var-name,设置其值,并显示

7.unset 取消变量

8.位置变量
$0         $1               $2                 $3       $4     
脚本名     第一个参数 A     第二个参数 B     。。。。C     。。。。D     
    
注意:$10是表示第一个参数后面加上“0”,第10个参数可以通过shift命令得到
可用shift 或者shift[n]来表示左移参数的位置
shift与shift[1]相同,都是左移一个位置(从$1开始算,$0-脚本名是不会边的),如上图则$1的 值 为B,$2的值为C......
$# 参数的个数($0不算在内)
$* 和 $@ 都是列出全部参数,下面举例说明它们的差异:
比如在命令行中输入 ./test.sh A "B C" D
则 $*和$@都为 A B C D
但是如果用了软引用之后:
"$@"可得到 "A" "BC" "D"三个字段
"$*"则得到"A B C D"一个字段
9.标准变量(大部分都是环境变量):
EXINIT:保存使用vi初始化选项,如EXINIT='set nu tab=4';exprot EXINIT
IFS:域分隔符,默认是空格,可改边IFS=: 或 IFS=':'
HOME:主目录
LOGNAME:登录名
MAILCHECK:每隔多长时间检查是否有邮件
MAILPATH:用于多个邮箱时查看MAIL存储在哪几个文件中
TERM:终端类型
PATH:指定了当用户输入命令时linux搜索程序的目录由冒号:分隔,shell将按PATH中给出的顺序搜索这些目录。找到的第一个与命令名称一致的可执行文件将被执行
TZ:时区
PS1:主提示符,其缺省值 '[\u@\h \w]\$ '
  u:用户 h:主机名 w:当前的目录。最后的"$"是普通用户的提示符,特权用户是"#"
PS2:辅助提示符,一行中若需用多个命令时的提示符,缺省是">",如果用户在行末输入"\",然后 回车,则会有改符号出现。
PWD:当前运行的进程号
$$:当前运行的进程号
$!后台运行的最后一个进程的ID
$- 显示shell使用的当前选项,与set相同
$? 显示最后命令的退出状态,0表示没有错误,其他表示错误。
9.影响变量的命令
(1)declare     设置或者显示变量
    -f       只显示函数名
    -r       创建只读变量
    -x       创建转出变量
    -i       创建整数变量
  用+代替-可以颠倒选项的含义(r不能颠倒)
(2)export 创建传给子shell的变量(创建环境变量)
    --表明选项结束,所有的后续参数都是实参
    -f表明在“名-值”对中的名字是函数名
    -n把全局变量转换成局部变量,命令的变量不再传给子shell
    -p显示全局变量列表
(3)readonly 用于显示或者设置只读变量
    --表明选项结束
    -f创建只读变量
(4)typeset     用于显示或设置变量,是declare的同义词
(5)unset 取消变量的定义
  --表明选项结束
  -f删除只读变量(但不能取消从shell环境中删除指定的变量和函数,如PATH,PS1,PDID,EUID,PID,UID等)
10.双引号:
  使用双引号可引用除字符$,`,\ 外的任意字符和字符串
11.单引号
单引号与双引号不同的是shell会忽略任何引用值。换句话来说,如果屏蔽了其特殊含义,会将引号里所有的字符,包括引号作为一个字符串
12.反引号
设置系统命令的输出到变量。shell将反引号里的命令的内容作为一个系统命令并执行其内容
13.反斜杠
如果一个字符有特殊的意义,反斜杠可以屏蔽其含义,有特殊含义的字符有:& * + ^ $ ` " | ?
14.运算符
按位运算符有:~ ,<<,>>,^>|,&
$[ ]表示对方括号中的表达式求值 $[ 2+8 ].(注意[]内左右都必须留空格)
$[ 2#111+1 ]=8 表示二进制的1111+1
运算符的优先级
以下级别高的优先级高
  13级:+,- (正负)
  12级:!,~ (逻辑非,按位取反)
  11级:*,/,% (乘,除,取摸)
  10级:+,- (加减)
  9级:<<,>>按位左移动,右移
  8级:<=,>=,<,> (小于等于,大于等于,小于,大于)
  7级:==,!= (等于,不等于)
  6级:& 按位与
  5级:^ 按位异或
  4级 | 按位或
  3级&& 逻辑与
  2级 || 逻辑或
  1级=,+=,-=,*=,/=,%=,|=,<<=,>>= 

 

尊重原创!

引用地址:http://blog.163.com/litao_1990/blog/static/204511164201231043235417/


阅读(1173) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~