今天进行shell 编程的遇到一个复杂的问题,
就是在shell脚本里多一个语句
mypath= ` echo $PATH | sed 's/:/ /g' ` ; //红色的为反引号
就是将PATH环境变量里的“ :” 换成空格,以进行下一步操作。
但却出现了问题,我将反引号打成单引号,
执行的时候自然出了问题,
这就算shell编程里命令替换问题:
命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或 者$(...)结构括起来,其中,$(...)格式受到POSIX标准支持,也利于嵌套。
例如:
#echo users are `who'
users are gaopeng tty7 2010-11-10 20:09 (:0) gaopeng pts/0 2010-11-10 20:09 (:0.0)
#echo users are $(who)
users are gaopeng tty7 2010-11-10 20:09 (:0) gaopeng pts/0 2010-11-10 20:09 (:0.0)
以后这种替换还是$来的方便。
用反引号出错了不易检查不说,
关键有些人不知道反引号在什么地方,
它一般应该就在ESC键的下方,数字键1的左方。
就是在shell脚本里多一个语句
mypath= ` echo $PATH | sed 's/:/ /g' ` ; //红色的为反引号
就是将PATH环境变量里的“ :” 换成空格,以进行下一步操作。
但却出现了问题,我将反引号打成单引号,
执行的时候自然出了问题,
这就算shell编程里命令替换问题:
命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或 者$(...)结构括起来,其中,$(...)格式受到POSIX标准支持,也利于嵌套。
例如:
#echo users are `who'
users are gaopeng tty7 2010-11-10 20:09 (:0) gaopeng pts/0 2010-11-10 20:09 (:0.0)
#echo users are $(who)
users are gaopeng tty7 2010-11-10 20:09 (:0) gaopeng pts/0 2010-11-10 20:09 (:0.0)
以后这种替换还是$来的方便。
用反引号出错了不易检查不说,
关键有些人不知道反引号在什么地方,
它一般应该就在ESC键的下方,数字键1的左方。