openKylin论坛

 找回密码

shell 3 [复制链接]

== Shell里的一些特殊符号==

=== 引号 ===

在向程序传递任何参数之前,程序会扩展通配符和变量。这里所谓的扩展是指程序会把通配符(比如*)替换成适当的文件名,把变量替换成变量值。我们可以使用引号来防止这种扩展,先来看一个例子,假设在当前目录下有两个jpg文件:mail.jpg和tux.jpg。

#!/bin/bash

echo *.jpg

运行结果为:

mail.jpg tux.jpg

引号(单引号和双引号)可以防止通配符*的扩展:

#!/bin/bash

echo "*.jpg"
echo '*.jpg'

其运行结果为:




*.jpg
*.jpg

其中单引号更严格一些,它可以防止任何变量扩展;而双引号可以防止通配符扩展但允许变量扩展:

#!/bin/bash

echo $SHELL
echo "$SHELL"
echo '$SHELL'

运行结果为:

/bin/bash
/bin/bash
$SHELL

此外还有一种防止这种扩展的方法,即使用转义字符——反斜杆:\:

echo \*.jpg
echo \$SHELL

输出结果为:





*.jpg
$SHELL



楼主
发表于 2013-5-7 14:21:20
回复

使用道具 举报

openKylin

GMT+8, 2024-5-2 09:23 , Processed in 0.017474 second(s), 17 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

快速回复 返回顶部 返回列表