想查看工作目录中所有的文件名,可执行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
本文介绍Linux Shell脚本中命令替换的概念及应用,展示了如何通过命令替换将命令输出保存到变量,并结合for循环进行文件处理,同时提供了多命令组合及嵌套命令替换的例子。
2648

被折叠的 条评论
为什么被折叠?



