如果当前目录路径中有空格,则无法使用 pwd 循环文件

如果当前目录路径中有空格,则无法使用 pwd 循环文件

我创建的 bash 脚本中有以下代码。当我从路径中没有空格的目录运行它时,它会按预期工作,但是如果我从有空格的目录运行它会失败。我很确定我需要以某种方式逃避它,但我尝试过的似乎都不起作用。

for file in `pwd`/*
do 
    echo file:$file
done

我所说的“失败”是指如果我从路径“~/dir 1/ test”运行命令,它将回显以下内容:

file: ~/dir
file: 1/
file: test

我希望它列出目录中的文件(如果当前目录中没有空格,它就会列出):

file: file 1
file: file 2
file: file 3

请注意,只有当当前目录中有空格时,这才会出现问题,带有空格的文件会被很好地处理。

我在这里读过几个类似的例子,例如为什么我的 shell 脚本会因为空格或其他特殊字符而卡住?循环遍历名称中带有空格的文件?但我看不出它们如何(如果它们相关)适用于我的具体示例。

答案1

感谢 Paulo Tomé,我需要将其更改为以下内容:

for file in "$(pwd)"/* 
do 
    echo file:"$file" 
done

相关内容