gpt4 book ai didi

linux - 文件名包含空格的 Shell 脚本问题

转载 作者:IT王子 更新时间:2023-10-29 00:52:58 31 4
gpt4 key购买 nike

我知道处理文件名中空格的一种技术是用单引号将文件名括起来:“'”。

为什么以下代码调用“echo.sh”在包含带空格的文件名的目录上工作,但程序“ls.sh”不起作用,唯一的区别是“echo”被“ls”替换'?

echo

#!/bin/sh
for f in *
do
echo "'$f'"
done

产出:
'a b c'
'd e f'
'echo.sh'
'ls.sh'

但是,“ls.sh”失败了:

#!/bin/sh
for f in *
do
ls "'$f'"
done

产出:
ls: 无法访问 'a b c': 没有那个文件或目录
ls: 无法访问 'd e f': 没有那个文件或目录
ls: 无法访问 'echo.sh': 没有那个文件或目录
ls: 无法访问 'ls.sh': 没有那个文件或目录

最佳答案

你实际上是在添加多余的“'”(你的 echo 调用显示)

试试这个:

#!/bin/sh
for f in *
do
ls "$f"
done

关于linux - 文件名包含空格的 Shell 脚本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15511006/

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