所谓命令替换,是把命令执行后的标准输出放入变量中。这是一个十分有威力的功能。例如说,
想查看工作目录中所有的文件名,可执行ls命令,但如何把这些文件名存入变量中,供往后的程序代码再利用呢?
使用命令替换,轻轻松松就可以做到这点。在Script设计中,运用这项功能的比重相当高。
命令替换的语法有以下两种:
- 新式写法:变量名称=$(命令) #强烈建议采用新式的写法
- 旧式写法:变量名称=`命令`
注意,上式是使用一对“`”(在键盘的左上角)符号含括住命令,而不是用单引号!
Bash会把执行命令后产生的标准输出,赋值给指定的变量。在这个过程中,默认会自动删除换行字符。例如:
DIRS=$(ls)
DIRS的变量值,即含有工作目录中所有文件的名称列表。
取得命令替换的值后,可把它放在for循环中,一一加以处理,如以下程序区块:
DIRS=$(ls)
for f in $DIRS
do
echo $f
done
命令替换中,可以包含两个或两个以上的指令,如以下范例,可取得上层目录名称:
PDIR=$(cd ..; pwd)
这里有两道指令:cd .. 和 pwd,中间用;隔开,命令替换的值是最后一道指令执行的结果。
在命令替换里,也可以再包含其他命令替换。例如:
Related Posts
linux 下批量压缩文件一堆eps文件要将每个文件单独压缩成一个文件,比如a.eps , b.eps, c.eps 压缩成 a.zip ,b.zip ,c.zip for…
Linux umask限制导致php的mkdir 0777无效这两天在写一个缓存模块,需要把生成的缓存目录和文件设置成777权限,好让ftp用户可以直接登录删除缓存,蛋疼的事也就这么发生了,明明用了mkdir($path, 0777);用ftp用户登录却删除不了,为什么呢? 查看了一下建立的目录的权限,发现mkdir建立的目录权限都是755的,我明明用的是777,立马google了一下,才知道原来是受Linux 系统的 umask限制了,Linux的umask默认值是0022,所以php 的 mkdir 函数只能建立出755权限的文件夹出来。…
二级域名和二级目录的联系与区别当网站发展到一定时期,想要扩大网站规模、建立新频道的时候,相信很多人和我一样在选择二级域名和二级目录上犯了难。这篇文章我深入分析之后给出了答案。如果你的网站在使用二级域名和二级目录捉摸不定的时候,看看此文,会对你有所帮助的。 首先,我们来看看什么是二级域名,什么是二级目录? 1:二级域名:需要创建二级域名,设置DNS,修改A记录,指定IP等操作。具体建网站或者编辑网页时,需要对不同二级域名下的内容分开存放。相当于一个独立的网站。 如,http://bbs.keennet.cn 2:二级目录,就是子目录,继承在主站目录下的,相当于网站的跟目录在建立一个文件夹存放网站。 如,http://www.keennet.cn/bbs/…