如何获得客观-C
问题描述:
问题中加载默认的配置文件的bash的实例: 我希望能够从我的可可应用程序(OS X)与加载的所有正常的配置文件运行bash的实例(〜/。 bash_profile等)。我不要想手动加载配置文件,因为我想有一个默认的bash实例,是完全相同的,你会得到一个发射终端。从那里,我想要检索一些预定义的环境变量(Ruby版本管理器的变量)。如何获得客观-C
我试过的东西: 我已经尝试了一些解决方案,但没有成功。让我一一列举:
- NSTask
- 系统()调用
每一个解决方案,我试图执行 “/ bin/sh的-l” 有装载作为当前一个bash实例用户名...不幸的是它没有工作。
答
当您运行bash
作为sh
时,它运行在兼容模式下,它不会读取.bash_profile
。如果你想运行bash
然后运行/bin/bash
(或者,如果你希望其他人使用你的应用程序,确保你考虑什么壳用户选择。)
答
您可以使用命令行选项“--login
”告诉bash
表现为登录shell。
传统上,如果shell的基名称以短划线开头,则shell将充当登录shell。
您也许能获得所需的效果:
bash --login -c 'echo $RUBY_VARIABLE_OF_INTEREST'
如果您正在使用popen()
这样做,你可以阅读从shell输出。
执行如何? – 2010-11-28 23:39:24
你是什么意思执行如何?我作为启动程序的用户执行程序,我不分流程 – 2010-11-28 23:49:58