标签: interactive-shell

登录shell和交互式shell之间有什么区别?

什么是login shellinteractive shell,什么是.bash_profile.bashrc

bash shell interactive-shell

56
推荐指数
2
解决办法
2万
查看次数

MongoDB有shell历史文件吗?

MongoDB有类似.bash_history文件的东西吗?

我最近键入了一个长命令,关闭并重新打开shell,并想要检索它.

按下按钮不起作用,因为似乎在新shell中无法访问最后一个shell的历史记录.

我用Homebrew安装了1.8.1.我应该设置一个配置变量来打开MongoDB交互式shell历史记录吗?

这是我的mongod.conf档案:

# Store data in /usr/local/var/mongodb instead of the default /data/db
dbpath = /usr/local/var/mongodb

# Only accept local connections
bind_ip = 127.0.0.1
# Enable Write Ahead Logging (not enabled by default in production deployments)
journal = true
Run Code Online (Sandbox Code Playgroud)

history mongodb interactive-shell

34
推荐指数
1
解决办法
2万
查看次数

去交互式shell

可能重复:
Go是否提供REPL?

有没有人知道是否有可用的REPL(交互式shell,类似于irb)允许用户使用import语句?我希望能够做到这样的事情:

$igo import ( 
             "log"
             "mypackage/pkg"
            )
log.Print("hello, world!")
pkg.Print("Hello")
...
Run Code Online (Sandbox Code Playgroud)

我试过igo,但似乎还不支持这个.

go interactive-shell

21
推荐指数
1
解决办法
1万
查看次数

什么魔法阻止Tkinter程序在交互式shell中阻塞?

注意:这有点是对问题的跟进:Tkinter - 我什么时候需要调用mainloop?

通常在使用Tkinter时,您调用Tk.mainloop来运行事件循环并确保正确处理事件并且窗口保持交互而不会阻塞.

在交互式shell中使用Tkinter时,似乎不需要运行主循环.举个例子:

>>> import tkinter
>>> t = tkinter.Tk()
Run Code Online (Sandbox Code Playgroud)

将出现一个窗口,它不会阻止:您可以与它进行交互,拖动它并关闭它.

因此,交互式shell中的某些内容似乎确实创建了一个窗口并在后台运行事件循环.

现在为有趣的事情.再次从上面举例,但是在下一个提示中(不关闭窗口),输入任何内容 - 而不是实际执行它(即不要按回车键).例如:

>>> t = tkinter.Tk()
>>> print('Not pressing enter now.') # not executing this
Run Code Online (Sandbox Code Playgroud)

如果您现在尝试与Tk窗口进行交互,您将看到它完全阻止.因此,当我们向交互式shell输入命令时,我们认为将在后台运行的事件循环停止.如果我们发送输入的命令,您将看到事件循环继续,我们在阻塞期间所做的任何操作都将继续处理.

所以最大的问题是:交互式shell中发生的这种魔力是什么?当我们没有明确地执行它时,什么运行主循环?为什么我们输入命令时需要停止(而不是在执行命令时停止)?

注意:以上在命令行解释器中的工作方式与此类似,而不是IDLE.对于IDLE,我假设GUI实际上并不会告诉底层解释器已经输入了某些内容,而只是将输入保存在本地,直到它被执行.

python tkinter interactive-shell

16
推荐指数
1
解决办法
2553
查看次数

如何使用PHP交互式shell

我正在使用Ubuntu 12.04 64位,我想使用PHP交互式shell:

php -a
Run Code Online (Sandbox Code Playgroud)

但它似乎不能很好地工作,很多语法都被错误地解释了.

当我运行php -a它时显示:

interactive mode enabled
Run Code Online (Sandbox Code Playgroud)

只是一个光标闪烁.

我正在使用:PHP 5.4.13-2~precision + 1(cli)(内置:2013年3月21日12:17:18)

我如何使用PHP交互式shell?

php ubuntu readline interactive-shell

12
推荐指数
3
解决办法
7227
查看次数

Eclipse中的PyDev Interactive Python Shell

我一直在使用Wing IDE进行python编程,我正在尝试切换到Eclipse,PyDev.

当我在Wing IDE中运行我的代码时,在完成执行后,控制台会立即回到交互式shell,我可以继续测试,但我不知道如何在Eclipse中执行此操作.我不确定我是否正确描述了我的问题,所以我将使用一个例子:

假设我有一个看起来像这样的简单源代码(例如test.py):

print("hello")
Run Code Online (Sandbox Code Playgroud)

当我通过单击绿色箭头在Wing IDE中运行它时,控制台在执行后将如下所示:

Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)]
Type "help", "copyright", "credits" or "license" for more information.
[evaluate untitled-1.py]
hello
>>>>
Run Code Online (Sandbox Code Playgroud)

我可以继续在shell上做任何事情,它会知道我的代码(定义函数等).但是当我在Eclipse中做同样的事情时,控制台看起来就像这样:

hello
Run Code Online (Sandbox Code Playgroud)

然后我必须单击"删除所有已终止的启动"按钮返回到shell.

这可以在Eclipse中完成吗?

python eclipse pydev wing-ide interactive-shell

5
推荐指数
1
解决办法
1万
查看次数

尽管脚本是"纯粹的"python(自定义异常处理程序挂钩停止工作),但.py和.ipy文件的IPython行为不同

我编写了一个异常处理程序,用于在调用普通的python异常挂钩之前记录代码中所有未捕获的异常.Python和iPython的实现方式略有不同.我发现iPython这样做的方式只有在交互式会话中运行时才有效,或者当使用".ipy"文件扩展名时,尽管我不相信我使用的是任何"魔术".即使脚本名为.py并且是'Pure python',常规的python方式也无法在ipython中运行.

我想要一种方法能够在脚本中为iPython设置我自己的异常挂钩,即使它是从命令行调用为".py"文件.

示例代码testcase.py:

import sys

def my_exc(exc_type, exc_value, exc_traceback):
    """Regular Python exception handler with inputs mirroring sys.excepthook"""

    print('\nDoing Custom Stuff (Python exc handler)\n')
    # Call the old sys.excepthook as well
    sys.__excepthook__(exc_type, exc_value, exc_traceback)

def imy_exc(shell, exc_type, exc_value, exc_tb, tb_offset=None):
    """IPythonic exception handler, following instructions in 
    set_custom_exc here:
    http://ipython.org/ipython-doc/stable/api/generated/IPython.core.interactiveshell.html"""

    print('\nDoing Custom Stuff (iPython exc handler)\n')
    # Do regular IPython stuff as well
    shell.showtraceback((exc_type, exc_value, exc_tb), tb_offset=tb_offset)

try:
    __IPYTHON__
    from IPython import get_ipython
    shell = get_ipython()
    if shell:
        print('Shell Active')
        # …
Run Code Online (Sandbox Code Playgroud)

python exception-handling ipython python-2.7 interactive-shell

5
推荐指数
0
解决办法
403
查看次数

自定义交互式Shell与自动完成

我的任务是创建一个嵌入在python中的交互式shell,这样当从命令行调用它时,它将被放入该shell中.任何人都可以推荐我这样做的图书馆吗?

我需要能够创建自定义单词"actions",所以当用户输入这些单词时,我的程序可以执行我创建的正确函数.我还想在我创建的自定义单词上完成自动完成/标签的功能.

例:

$ python myapplication.py
$ myapp> 
$ myapp> help
   ... prints the help menu
$ myapp> run service blah
   .. service blah runs ...
$ myapp> exit
$ 
Run Code Online (Sandbox Code Playgroud)

python shell ipython interactive-shell

5
推荐指数
2
解决办法
4584
查看次数

如何从以前的bash命令获得倒数第二个参数?(在交互式bash shell中)

如何在bash交互式shell中轻松获取前一个命令的倒数第二个(倒数第二个)单词/参数?我经常在后台运行命令,我想获取之前指定的文件&,例如,

  % echo foo > /tmp/foo &
  % cat !$
  % &
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,!$给出最后一个单词,&.但我想要倒数第二个论点,/tmp/foo



请注意,可以使用类似范围的单词指示符!-1:3,但这对于具有大量单词的命令来说是不切实际的,其中不太明显有多少单词,例如,

% (set -x; date; pwd; git status; git diff;  git log | tail -30; date; args=--verbose time make test; date) >& /tmp/log/make.test.20150122-Thu-0834 &
% echo !-1:30
/tmp/log/make.test.20150122-Thu-0834
Run Code Online (Sandbox Code Playgroud)

上面的示例有效,但您必须计算并知道您想要的单词是第30个单词,这非常耗时且容易出错.

有一个简单的方法来获得倒数第二个(倒数第二个)单词吗?

(请注意,此问题是指交互式shell中前一个命令的参数,而不是指从命令行传递给shell脚本的参数,因为这里的一些答案和注释是指.)

bash shell command-line command-line-arguments interactive-shell

5
推荐指数
2
解决办法
1465
查看次数

与 python 上的交互式 shell 脚本交互

我在 Windows 上有一个交互式 shell 应用程序。我想编写一个 python 脚本,它将向该 shell 应用程序发送命令并读回响应。不过,我想以交互方式执行此操作,即我希望 shell 应用程序随着 python 脚本的运行而继续运行。

我努力了

self.m_process subprocess.Popen(path_to_shell_app,shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE,universal_newlines=True)
Run Code Online (Sandbox Code Playgroud)

然后使用 stdin 和 stdout 发送和接收数据。似乎外壳应用程序正在打开,但我无法与其通信。

我究竟做错了什么?

python interactive-shell

5
推荐指数
1
解决办法
5479
查看次数