您的位置:首页 > 运维架构 > Shell

Shell入门教程:命令替换 $() 和 ``

2015-03-09 16:10 351 查看
以下为转载:

————————————————————————————————————————————————————————————

所谓命令替换,是把命令执行后的标准输出放入变量中。这是一个十分有威力的功能。例如说,

想查看工作目录中所有的文件名,可执行ls命令,但如何把这些文件名存入变量中,供往后的程序代码再利用呢?

使用命令替换,轻轻松松就可以做到这点。在Script设计中,运用这项功能的比重相当高。

命令替换的语法有以下两种:

新式写法:变量名称=$(命令) #强烈建议采用新式的写法
旧式写法:变量名称=`命令`

注意,上式是使用一对“`”(在键盘的左上角)符号含括住命令,而不是用单引号!

Bash会把执行命令后产生的标准输出,赋值给指定的变量。在这个过程中,默认会自动删除换行字符。例如:

1
DIRS=$(
ls
)
DIRS的变量值,即含有工作目录中所有文件的名称列表。

取得命令替换的值后,可把它放在for循环中,一一加以处理,如以下程序区块:

1
DIRS=$(
ls
)
2
for
f

in
$DIRS
3
do
4
echo

$f
5
done
命令替换中,可以包含两个或两个以上的指令,如以下范例,可取得上层目录名称:

1
PDIR=$(
cd

..;
pwd
)
这里有两道指令:cd .. 和 pwd,中间用;隔开,命令替换的值是最后一道指令执行的结果。

在命令替换里,也可以再包含其他命令替换。例如:

1
r=$(
du

-s $(
pwd
))
# 取得工作目录磁盘用量的总和
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: