【发布时间】:2011-07-28 15:06:38
【问题描述】:
我一直在从事 Python/Django 项目,我刚刚发现了“./manage.py dbshell”命令。它会读取您的配置文件以获取数据库凭据并为您启动一个数据库 shell。
在底层,Django 使用 Python os.execvp (http://docs.python.org/library/os.html#os.execvp) 函数。我在 Java/Ant 中找不到这样的东西,但我确实发现您可以将正在运行的进程重定向到您的 TTY (mysql > tty),但尝试为此创建任务似乎没有工作。
<target name="test">
<exec executable="/bin/sh">
<arg value="-c" />
<arg value="mysql -u foo -pbar > `tty`" />
</exec>
</target>
当我运行这个任务时,我没有得到一个数据库外壳,并且在当前目录中创建了一个名为“not a tty”的文件。
对于如何从 ant 启动交互式进程,有人有任何其他想法吗?
【问题讨论】:
-
execvp 是 execv (linux.about.com/library/cmd/blcmdl3_execv.htm) 系列函数的一部分。
标签: shell ant tty io-redirection