hdiutil能在终端窗口中运行,但不能在shell脚本中运行。

5
我会尽力为您翻译中文。以下是需要翻译的内容:

我正在使用hdiutil挂载sparseimage文件。当我在终端中键入命令时,它可以正常工作,但是当我尝试将其作为shell脚本运行时,它会出现错误。

以下是代码:

echo -n 'password' | hdiutil attach -stdinpass file.sparseimage

这是错误信息:
hdiutil: attach failed - Authentication error

我确定密码是正确的。有人能告诉我哪里出了问题吗?

如果shell脚本使用sh(这是OS X中的POSIX兼容版本的bash),则默认启用xpg_echo,因此例如echo -n password会打印带有换行符的-n password - Lri
-n或不加-n应该都没什么关系。问题在于-stdinpass似乎无法与echo一起使用。 - Paul Hargreaves
1个回答

9
hdiutil文档的EXAMPLES部分建议使用printf而不是echo -n来实现此功能。
 Creating an encrypted single-partition image without user interaction:
       printf pp|hdiutil create -encryption -stdinpass -size 9m sp.dmg

如果您对10.9测试版进行测试,请确保同时进行最新版本和10.8的测试。我之所以提出这一点,是因为我曾经在早期版本的10.9中遇到了一些关于STDIN的错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接