hdiutil在终端窗口中工作但不在shell脚本中工作

use*_*362 5 unix macos bash shell terminal

我正在使用hdiutil来安装sparseimage文件,当我在终端输入命令时它工作正常,但是当我尝试将它作为shell脚本运行时,它会出错.

这是代码:

echo -n 'password' | hdiutil attach -stdinpass file.sparseimage
Run Code Online (Sandbox Code Playgroud)

这是错误:

hdiutil: attach failed - Authentication error
Run Code Online (Sandbox Code Playgroud)

我确信密码是正确的.谁能告诉我有什么问题?

Rob*_*ier 8

hdiutil文档的示例部分建议使用printf此而不是echo -n.

 Creating an encrypted single-partition image without user interaction:
       printf pp|hdiutil create -encryption -stdinpass -size 9m sp.dmg
Run Code Online (Sandbox Code Playgroud)

如果您正在测试10.9测试版,请确保使用最新版本和10.8进行测试.我只提出这个问题,因为我在早期版本10.9中遇到了一些与STDIN相关的错误.