gpt4 book ai didi

linux - 为什么双引号会改变结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:15 24 4
gpt4 key购买 nike

我有一个简单的 linux 脚本:

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

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

当我调用./script temp/*.??我得到:

temp/a.aa

当我调用 ./script "temp/*.??"我得到:

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

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

最佳答案

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

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

因为您只查看脚本中的第一个参数,所以只有 temp/a.aa 被传递给 ls。

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

关于linux - 为什么双引号会改变结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/258729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com