shell程序设计语法之变量(1)-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 893650
  • 博文数量: 113
  • 博客积分: 3160
  • 博客等级: 少校
  • 技术积分: 1801
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-19 10:09
文章分类

全部博文(113)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2012-06-02 21:43:29

1:变量

 

shell里,使用变量之前通常不需要事先为它声明,我们只是简单地在使用它们的时候创建即可。默认情况下,所有变量均以字符串形式存储,即使是被赋值为数值时也这样。

 

shell中,我们可以使用$加上变量来访问它的内容(有点类似与c语言的取地址符&)。当为变量赋值的时候,我们只需要变量名,如果此变量不存在就会被自动创建。(如果字符串有空格,必须加上双引号,而且等号两边不能有空格)

 

solution="hello world !"      #创建变量solution

echo $solution            #使用变脸solution

 

 

1.1 引号

 

一般情况下,脚本文件中的参数以空白字符分割开,如果你想要在一个参数中包含多个空白字符,就必须给参数加上引号。

 

 

实例:

#!/bin/sh

# filename is t

myvar="hello world !"

echo $myvar     

echo "$myvar"

echo '$myvar'

echo \$myvar

 

 

执行结果:

lishuo@lishuo-rev-1-0:~/桌面$ ./t

hello world !

hello world !

$myvar

$myvar

 

 

1.2 环境变量

 

一个shell脚本程序开始执行的时候,一些变量会根据环境设置的值进行初始化,这些变量通常都以大写字母做名字,以便于和定义的变量区分开。下面是一些比较重要的变量。

 

 

$home当前用户的主目录

$path以冒号分割开的用来搜索命令的目录列表

$ps1命令提示符,通常是$,bash中,字符串[\u@\h\w]$就是一个流行的默认值,它给出用户名,机器名和当前目录

$ps2二级提示符,用来提示后续的输入,通常是>

$ifs输入域分隔符,当shell读取输入的时候,用来分割单词的一组字符,他们通常是空格,制表符或者换行符。

$0shell脚本的名字

$#传递给脚本的参数

$$shell脚本的进程号,脚本程序通常会生成一个唯一的临时文件,如/tmp/tmpfile_$$

 

 

 

1.3 参数变量

 

 

如果你的脚本程序在调用的时候带有参数,它就会创建一些额外的变量,即使没有传递变量,环境变量$#也依旧存在,只不过它的值为0

 

 

参数列表如下:

 

$1,$2,$3....脚本程序的参数

$*在一个变量中列出所有的参数,各个参数之间用环境变量ifs中的第一个字符分割开

$@它是$*的变体,它不适用ifs变量,所以在ifs为空的时候,参数的值不会结合在一起。

 

 

实例:

#!/bin/sh

x="hello"

echo $x

echo "the program $0 is now runing"

echo "the second parameter was $2"

echo "the first parameter was $1"

echo "the user's hmoe directory is $home"

 

 

执行结果:

lishuo@lishuo-rev-1-0:~/桌面$ ./t

hello

the program ./t is now runing

the second parameter was 

the first parameter was 

the user's hmoe directory is /home/lishuo

 

 

这些内容是我平时阅读的笔记,源自《linux程序设计第三版》,详细内容请看原书

阅读(2105) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图