在路上...

The development of life
我们一直都在努力,有您的支持,将走得更远...

站内搜索: Google

  :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

      引         号

shell引用类型
" " 双引号        ` 反引号
' ' 单引号            \ 反斜线

双引号

使用双引号可引用除字符$、`、\外的任意字符或字符串,也就是说它会解释这些特殊字符.在一个反馈的文本行里可以使用双引号将变量引起来。下面的例子中, s h e l l反馈文本行,遇到符号$,知道这是一个变量,然后用变量值b o y替换变量$ B O Y。

$ BOY="boy"

$echo "The  $BOY diid well"

The boy did well

单引号
单引号与双引号类似,不同的是s h e l l会忽略任何引用值。换句话说,如果屏蔽了其特殊
含义,会将引号里的所有字符,包括引号都作为一个字符串。使用上一个例子,结果如下:

$GIRL='girl'

echo  "The  '$GIRL' didi well"

The  'girl' did well

通俗的讲,单引号啥都不管

反引号
反引号用于设置系统命令的输出到变量。s h e l l将反引号中的内容作为一个系统命令,并
执行其内容。使用这种方法可以替换输出为一个变量。反引号可以与引号结合使用。

反斜线
如果下一个字符有特殊含义,反斜线防止s h e l l误解其含义,即屏蔽其特殊含义。下述字
符包含有特殊意义: & * + ^ $ ` " | ?。

 

环境和shell变量

测试变量是否已经设置
有时要测试是否已设置或初始化变量。如果未设置或初始化,就可以使用另一值。此命
令格式为:
$ { v a r i a b l e : - v a l u e }
意即如果设置了变量值,则使用它,如果未设置,则取新值。例如:

$COLOR="blue"

$echo  "The sky  is ${COLOR:-grey} today"

The sky  is blue today

但是它不会将该值传给变量.需使用下述命令完成此功能:
$ { v a r i a b l e : = v a l u e }

也可以编写脚本测试变量是否取值,然后返回带有系统错误信息的结果。下面的例子测试变量f i l e是否取值。

echo "The file is ${FILES :?}"

sh: FILES: parameter null or not set 以上结果可读性不好,但是可以加入自己的脚本以增加可读性。

echo "The file is  ${FILES:? "sorry  cannot  locate the file"}"

sh: FILES: sorry  cannot locate the file

测试变量是否取值,如果未设置,则返回一空串。方法如下


$ { v a r i a b l e : + v a l u e }

导出变量除了可以用export 外,还可以用 set 命令

在$ H O M E . p r o f i l e文件中设置环境变量时,还有另一种方法导出这些变量。使用s e t命令- a选项,即set -a指明所有变量直接被导出。不要在/ e t c / p r o f i l e中使用这种方法,最好只在自己的$ H O M E . p r o f i l e文件中使用。

不可以将变量从子进程导出到父进程, 然面通过重定向就可做到这一点

最常用的s t t y命令使用在下述设置上
名称                键                  含义
i n t r                 ^ C               终止进程
e c h o                                   打开e c h o功能
- e c h o                                关闭e c h o功能
e o f                ^ D                文件尾;注销
k i l l                ^U                删除一行
s t a r t            ^ Q                 滚动屏幕文本
s t o p             ^ S              停止滚动屏幕文本

特定s h e l l变量
$ #                   传递到脚本的参数个数
$ *                    以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
$ $                    脚本运行的当前进程I D号
$ !                     后台运行的最后一个进程的进程I D号
$ @                  与$ #相同,但是使用时加引号,并在引号中返回每个参数
$ -                     显示s h e l l使用的当前选项,与s e t命令功能相同
$ ?                     显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

posted on 2009-08-14 14:07  palam  阅读(125)  评论(0)    收藏  举报