首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fallback命令通过"No这类文件或目录“抛出

fallback命令通过"No这类文件或目录“抛出
EN

Stack Overflow用户
提问于 2018-07-18 12:03:59
回答 1查看 383关注 0票数 0

我正试图在我的Mac上使用PlistBuddy执行一个更新或插入。

脚本

我写了以下脚本:

代码语言:javascript
复制
#!/bin/sh
set -e
PLIST_LOCATION="Info.plist"
ENVIRONMENT="DEV"
/usr/libexec/PlistBuddy $PLIST_LOCATION -c "Set :MyEnvironment string $ENVIRONMENT" || \
/usr/libexec/PlistBuddy $PLIST_LOCATION -c "Add :MyEnvironment string $ENVIRONMENT"

测试

我想要确保,如果第二个命令失败,我的脚本就会失败,所以我将它更改为,只为了测试

代码语言:javascript
复制
/usr/libexec/PlistBuddy $PLIST_LOCATION -c "Set :TKEnvironment string $ENVIRONMENT" || \
/usr/libexec/PlistBuddy $PLIST_LOCATION -c "Delete :TKEnvironment string $ENVIRONMENT"

但不是

代码语言:javascript
复制
Set: Entry, ":MyEnvironment", Does Not Exist
Delete: Entry, ":MyEnvironment", Does Not Exist

命令将失败。

代码语言:javascript
复制
Set: Entry, ":MyEnvironment", Does Not Exist
./env.sh: line 6:  /usr/libexec/PlistBuddy: No such file or directory

问题

为什么它执行第一个命令,但又失败了,因为它找不到命令?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-18 12:32:42

如果您查看错误行

代码语言:javascript
复制
./env.sh: line 6:  /usr/libexec/PlistBuddy: No such file or directory

您将看到在冒号和命令路径的第一个/之间有一个额外的空间。这表明shell从某个地方接收到一个偏离字符,shell试图运行一个命令,前面有空格(或其他空格字符)。

如果您运行的是Windows,我会怀疑有一个回车字符潜入文件中,并且正在与\行继续进行糟糕的交互。在macOS下,我猜想通常的已经被旧的macOS回车取代了。我相信某位有帮助的编辑会在这一点上介入.

无论如何,我建议删除\并尝试一条长线。如果这有效的话,就意味着线尾问题。

此外,检查您的编辑器,以确保它正在使用合理的行尾。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51401578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档