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

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

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

 

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

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

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

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

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

DIRS=$(ls)
 

DIRS的变量值,即含有工作目录中所有文件的名称列表。

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

DIRS=$(ls)
for f in $DIRS
do
	echo $f
done
 

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

PDIR=$(cd ..; pwd)
 

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

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

r=$(du -s $(pwd)) # 取得工作目录磁盘用量的总和

 

来源:http://blog.snsgou.com/post-764.html

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值