Mac環境下C 呼叫shell命令

2021-10-05 10:24:52 字數 1778 閱讀 5853

正在優化unity打包工程。想用c#**呼叫shell指令碼來實現打包xcode匯出ipa.由於對c#**不是很熟悉。呼叫shell指令碼的時候遇到一些問題。現在把呼叫shell指令碼c#**在此記錄下。

使用terrminal呼叫shell指令碼,可以使用終端直**到執行結果。

string shell = projectpath +"/xcodebuild.sh";

string argss = shell;

system.diagnostics.process.start(command,argss);

unityengine.debug.log(argss);

但是發現這個方法我暫時無法給shell命令傳遞引數進去。不知道有沒有人知道怎麼辦。

不使用terrminal的話。倒是可以。

//用於做測試 shell傳遞引數需要用下面方法

string shell = projectpath +"/shell.sh";

string arg1 = "unity";

string arg2 = projectpath +"/test.log";

string argss = shell +" "+ arg1 +" " + arg2;

system.diagnostics.process.start("/bin/bash", argss);

裡面內容很簡單。#!/bin/bash echo $1 >> $2

就是把第乙個命令引數的值拷貝到第二個引數/test.log檔案裡

還可以類似這樣寫:

string shell = "shell.sh";

process process = new process ();

process.startinfo.createnowindow = false;

process.startinfo.errordialog = true;

process.startinfo.useshellexecute = false;

process.startinfo.filename = "/bin/bash";

process.startinfo.arguments = shell;

process.startinfo.redirectstandardoutput = true;

process.startinfo.redirectstandardinput = true;

process.startinfo.workingdirectory = projectpath;

process.start();

unityengine.debug.log( "process start rojectpath = !!" +projectpath);

string output = process.standardoutput.readtoend();

process.waitforexit();

process.close();

其中注意一點就是如果我們需要指定shell命令當前執行的目錄,

可以設定startinfo.workingdirectory屬性值。

參考:解決unity不能呼叫shell指令碼傳遞引數的問題

mac下安裝c 開發環境

解決辦法為 3.2 修改hosts檔案,將 0.0.0.0 account.jetbrains.com 貼上到檔案中。如果hosts為唯讀檔案,則需修改hosts為可寫,chmod a w hosts,再利用vim修改hosts檔案 3.3 使用生成的註冊碼複製在activation code下,完...

Python基礎 呼叫shell和cmd命令

啟動 catcmd adb s tvip 5555 logcat v time logpath printcatcmd self lcprocess subprocess.popen catcmd stdout subprocess.pipe stderr subprocess.pipe shell...

MAC下Intellij IDEA Go環境配置

配置乙個gopath環境變數,是工作目錄。根據約定,gopath下需要建立3個目錄 bin 儲存編譯後的可執行檔案 pkg 存放編譯後生成的包檔案 src 存放專案的原始碼 我把gopath建立在 users xinshaofeng study gowork vi bash profile 加入 e...