gpt4 book ai didi

objective-c - 在 Cocoa OSX 中执行 SSHFS 脚本

转载 作者:行者123 更新时间:2023-12-03 17:49:17 25 4
gpt4 key购买 nike

我在终端中使用了这个命令,它可以成功挂载驱动器。现在我想将此命令放入 Cocoa 应用程序中以在我的 Cocoa 应用程序中安装驱动器,但我不知道如何调用它。有没有办法将此命令放入脚本中并调用脚本?如果放入脚本,我们需要为其输入参数。请建议。非常感谢

sshfs -p 12001 abc@host.example.com:/host/root testSSHFS

更新:

我尝试了下面的代码,但出现错误,但当我在终端上尝试时,它可以成功安装驱动器。

remote host has disconnected
mount_osxfusefs: failed to mount /Volumes/TEST_DRIVE@/dev/osxfuse4: Socket is not connected

这是我使用的代码:

NSTask *task = [[NSTask alloc] init];

[task setLaunchPath:@"/opt/local/bin/sshfs"];
[task setArguments:@[@"-p 12000", @"600252@abc.com:/test", @"/Volumes/TEST_DRIVE",@"-oauto_cache,reconnect,defer_permissions,negative_vncache,noappledouble,volname=TEST_DRIVE"]];

NSPipe *inPipe = [NSPipe pipe];
[task setStandardInput:inPipe];

NSPipe *outPipe = [NSPipe pipe];
[task setStandardOutput:outPipe];

NSFileHandle *writer = [inPipe fileHandleForWriting];
NSFileHandle *reader = [outPipe fileHandleForReading];

[task launch];

//Wait for the password prompt on reader [1]
NSString* password = @"d6b0ab7f1c8ab8f514db9a6d85de160a";
NSData *passwordData = [password dataUsingEncoding:NSUTF8StringEncoding];
[writer writeData:passwordData];

[task waitUntilExit];

请指教。谢谢

最佳答案

类似这样的事情:

NSTask *task = [[NSTask alloc] init];

[task setLaunchPath:@"sshfs"];
[task setArguments:@[@"-p 12001", @"abc@host.example.com:/host/root", @"testSSHFS"]];

[task launch];
[task waitUntilExit];

我还没有测试过这个,所以把它当作一个指南。

您可能必须向 -setLaunchPath: 提供 sshfs 的完整路径。你可能还需要调整你的论点;我不知道 "-p 12001" 应该是一个参数还是两个参数。

关于objective-c - 在 Cocoa OSX 中执行 SSHFS 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32607661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com