我创建的 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