shell单引号与变量
2013-07-10 22:11
246 查看
近期公司申请了一大批连号的域名,我这里以test00.com~test99.com代替。配完DNS和A记录,接下来又
轮到写apache的虚拟主机规则。这么多的域名一个一个去写肯定要搞死人的,脑子一转,计上心头。我们
至少有N种方法去实现:
首先想到的是利用宏来实现,比如平时我用宏最多的几个带宏功能的工具是vim、notepad++、UltraEdit-32
还有word(不过word里的我到未经常用过),不过vim里N久没用,不记得了,在notepad小试了几下,没达
到要的效果。
接着想到利用shell定义一个函数来实现。不过公司这边催的太急,干脆也不用什么函数和宏了,直接最简单
的shell里的echo吧 !不过在使用echo 时发现变量在单引号里是不传递的,这时想到要用两个单引号才行。
具体代码如下:
注:其实上面的脚本并不能实现在10之前的数字前加0的,因为本文主要是讲单引号双引号和变量的关系的,
所以我这边也就没有修改。具体想在10之前的数字加0,可以加一个if判断实现,也可以通过另外一个工具printf
实现,具体可以参看我的另外一个例子——批量显示00到99——给10之前的数加0。
shell中单引号、双引号和两个双引号的区别,看下面的例子:
由上面的例子不难看出,双引号是不会屏蔽对变量和某些特殊符号的转义的,而单引号里的所有内容都会原封不对的输出
,而单引号里再用单引号将变量引起来,变量就又可以正常的显示,有点像数学里的负负为正。
原文地址:http://www.361way.com/quotation-mark/1166.html
轮到写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
相关文章推荐
- Shell 变量用双引号
- shell 单引号查看$变量的值写法(猜的能力)
- 单引号内引入变量 shell 命令输出赋值给变量,以及用变量替换命令
- shell 学习(1) 执行,管道,重定向,逻辑分隔,变量,引号,运算
- shell ,sed命令用变量替换字符串,单引号改为双引号
- perl,shell中如何打印出处理sql语句变量的单引号
- Shell脚本中赋值变量时单引号‘和双引号“的区别
- shell变量中单引号,双引号,反引号使用
- Shell 变量用双引号
- shell变量中单引号、双引号、反引号、与不加引号的区别
- shell的字符串和数字的转化(数字自动做字符串处理,变量名做字符串输出用单引号)
- linux- Shell变量命令之单引号与双引号的区别
- shell的字符串和数字的转化(数字自动做字符串处理,变量名做字符串输出用单引号)
- centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课
- 务必在判断字符串时,给shell变量加上引号
- shell的扩展(解释了shell单引号,双引号,变量中包含空行,echo时换行符变成空格等)
- awk中如何使用shell的环境变量
- shell中引号的用法
- shell特殊变量
- Shell元字符和shell内部变量