zoukankan      html  css  js  c++  java
  • Execute a terminal command from a Cocoa app

    http://stackoverflow.com/questions/412562/execute-a-terminal-command-from-a-cocoa-app

    in the spirit of sharing... this is a method I use frequently to run shell scripts. you can add a script to your product bundle (in the copy phase of the build) and then have the script be read and run at runtime. note: this code looks for the script in the privateFrameworks sub-path. warning: this could be a security risk for deployed products, but for our in-house development it is an easy way to customize simple things (like which host to rsync to...) without re-compiling the application, but just editing the shell script in the bundle.

    //------------------------------------------------------
    -(void) runScript:(NSString*)scriptName
    {
        NSTask *task;
        task = [[NSTask alloc] init];
        [task setLaunchPath: @"/bin/sh"];
    
        NSArray *arguments;
        NSString* newpath = [NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] privateFrameworksPath], scriptName];
        NSLog(@"shell script path: %@",newpath);
        arguments = [NSArray arrayWithObjects:newpath, nil];
        [task setArguments: arguments];
    
        NSPipe *pipe;
        pipe = [NSPipe pipe];
        [task setStandardOutput: pipe];
    
        NSFileHandle *file;
        file = [pipe fileHandleForReading];
    
        [task launch];
    
        NSData *data;
        data = [file readDataToEndOfFile];
    
        NSString *string;
        string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
        NSLog (@"script returned:
    %@", string);    
    }
    //------------------------------------------------------
  • 相关阅读:
    实验四 决策树
    实验三 朴素贝叶斯算法及应用
    实验二 k邻近算法及应用
    实验一 感知器及其应用
    实验三 面向对象分析与设计
    个人作业三---ATM管理系统
    流程图与活动图的区别于联系
    个人作业---四则运算生成程序
    面向对象分析与设计
    结构化分析与设计
  • 原文地址:https://www.cnblogs.com/xuejinhui/p/4499655.html
Copyright © 2011-2022 走看看