当前位置:  开发笔记 > 编程语言 > 正文

为什么双引号会改变结果

如何解决《为什么双引号会改变结果》经验,为你挑选了1个好方法。

我有一个简单的Linux脚本:

#!/bin/sh
for i in `ls $1`
do
       echo $i
done

在我的临时文件夹中有4个文件:aa,a.aa,a.ab和a.ac.

当我打电话给./script temp/*.?? 我得到:

temp/a.aa

当我打电话给./script"temp/*.??" 我得到:

temp/a.aa
temp/a.ab
temp/a.ac

为什么双引号会改变结果呢?



1> Robert Gambl..:

在第一种情况下,shell扩展temp/*.??为:

temp/a.aa temp/a.ab temp/a.ac

由于您只查看脚本中的第一个参数,因此只temp/a.aa传递给ls.

在第二种情况下,由于引号,shell不执行任何扩展,并且脚本接收temp/*.??在调用中展开的单个参数ls.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有