UnityでShell scriptを使ってなにがしかを実行したいことってありますよね。
いろいろ試してみてこれが良さそうだとなったものを記録しておきます。
Unity起動時にズバババっと処理されるように、InitializeOnLoadにしてあります。
[InitializeOnLoad]
public class Startup
{
static readonly string shPath =
Application.dataPath + "/Hoge.sh";
static Startup()
{
#if UNITY_EDITOR_OSX
StartExecForMac();
#endif
AssetDatabase.Refresh();
}
static void StartExecForMac()
{
var p = new Process();
p.StartInfo.FileName = "/bin/zsh";
p.StartInfo.Arguments = $"-c \"zsh {shPath}\" ";
p.StartInfo.Verb = "RunAs";
p.StartInfo.UseShellExecute = true;
p.Start();
p.WaitForExit();
}
}