我正在 Macosx Yosemite 上运行一个非常简单的 bash 脚本
#!/bin/bash
makefilePath=$(echo $(pwd)/make.sh | sed 's/ /\\ /')
echo $makefilePath
source "$makefilePath"
前三行按预期工作,但第四行创建了一个 returns an error No such file or directory
,即使我makefile
通过复制粘贴直接在 shell 中运行该命令,它也可以正常工作。
我不知道问题是什么。请帮忙。
答案1
您没有写出您的实际内容PWD
,但我假设它包含空格,因此 sed 命令将破坏文件名,并且它将不再代表原始文件。
损坏的文件名通过 shell 扩展按字面解释(并使用双引号)。请注意,也'\\'
不会执行您可能想要的操作。