shell单引号与变量

      近期公司申请了一大批连号的域名,我这里以test00.com~test99.com代替。配完DNS和A记录,接下来又

轮到写apache的虚拟主机规则。这么多的域名一个一个去写肯定要搞死人的,脑子一转,计上心头。我们

至少有N种方法去实现:

      首先想到的是利用宏来实现,比如平时我用宏最多的几个带宏功能的工具是vim、notepad++、UltraEdit-32

还有word(不过word里的我到未经常用过),不过vim里N久没用,不记得了,在notepad小试了几下,没达

到要的效果。

      接着想到利用shell定义一个函数来实现。不过公司这边催的太急,干脆也不用什么函数和宏了,直接最简单

的shell里的echo吧 !不过在使用echo 时发现变量在单引号里是不传递的,这时想到要用两个单引号才行。

具体代码如下:

#!/bin/bash
for ((site=00;site<100;site++))
do
echo '<VirtualHost *:80>'
echo '  ServerAdmin     test@361way.com '
echo '  DocumentRoot    "d:/wwwroot/group/www.test'${site}'.com" '
echo '  ServerName      www.test'${site}'.com'
echo '<Directory "d:/wwwroot/group/www.test'${site}'.com">'
echo '          Options FollowSymLinks'
echo '          AllowOverride   None'
echo '          Order   allow,deny'
echo '          Allow   from all'
echo '  </Directory>'
echo '</VirtualHost> '
echo '<VirtualHost *:80> '
echo '  ServerAdmin     test@361way.com'
echo '  ServerName      test'${site}'.com'
echo '  RewriteEngine   on'
echo '  RewriteRule ^(.*)$ http://www.test'${site}'.com$1 [R=301,L]'
echo '</VirtualHost>'
echo -e "n"
done

注:其实上面的脚本并不能实现在10之前的数字前加0的,因为本文主要是讲单引号双引号和变量的关系的,

所以我这边也就没有修改。具体想在10之前的数字加0,可以加一个if判断实现,也可以通过另外一个工具printf

实现,具体可以参看我的另外一个例子——批量显示00到99——给10之前的数加0

shell中单引号、双引号和两个双引号的区别,看下面的例子:

[root@test] a=55
[root@test] echo $a
55
[root@test] echo '$a'
$a
[root@test] echo ''$a''  #注意此处是两个单引不是一个双引
55

       由上面的例子不难看出,双引号是不会屏蔽对变量和某些特殊符号的转义的,而单引号里的所有内容都会原封不对的输出

,而单引号里再用单引号将变量引起来,变量就又可以正常的显示,有点像数学里的负负为正。

原文地址:http://www.361way.com/quotation-mark/1166.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值