小编Mar*_*rcH的帖子

Windows 7 x64上的git bash自动完成缓慢

我有两台机器,其中git bash auto complete非常慢.当我点击标签时,文件名可能需要8到10秒才能完成.只有当auto complete是git命令的一部分时,才会发生这种情况.自动完成cd工作正常.git命令的实际执行运行正常.

我在用 git version 1.8.3-preview20130601

$ git count-objects -vH
count: 9
size: 10.23 KiB
in-pack: 2488
packs: 1
size-pack: 18.68 MiB
prune-packable: 0
garbage: 0
size-garbage: 0 bytes
Run Code Online (Sandbox Code Playgroud)

可能是什么导致了这个?有没有可能的解决办法?

编辑:我更新到Git (version 1.8.4-preview20130916),问题仍然存在.我注意到在ConEmu中运行bash shell时,在长时间停顿期间显示在底部的命令是uniq.exe.似乎对可执行文件的调用正在扼杀时间.

编辑:更新git version 1.9.0.msysgit.0已缓解了大部分问题.延迟现在只有1到2秒.其他命令cd几乎是即时的(<0.5s).我也不会再看到uniq.exe跑步了sh.exe.

git bash zsh git-bash

12
推荐指数
2
解决办法
4533
查看次数

Powershell类似于Bash的`set -e`

我怎样才能让Powershell像旗帜一样表现得像Bash set -eset -o errexit使Bash脚本"如果一个简单的命令以非零状态退出则立即退出".

我以为我可以通过设置来做到这一点,$ErrorActionPreference="Stop"但这似乎不起作用.假设我有一个脚本a.ps1

$ErrorActionPreference="Stop"
& cmd /c "exit 1"
echo "cmd exited `$LastExitCode=$LastExitCode and `$?=$?"
Run Code Online (Sandbox Code Playgroud)

如果我运行它

.\a. ; echo "a.ps1 exited `$LastExitCode=$LastExitCode `$?=$?"
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是它打印出来

cmd exited $LastExitCode=1 and $?=False
a.ps1 exited $LastExitCode=1 $?=True
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?!我希望a.ps1在第一行之后退出,抛出错误并设置$?为假.

有没有官方文档解释$ ErrorActionPreference?所有我发现了这个帖子上关于咖啡博客.

.net bash powershell

8
推荐指数
1
解决办法
1368
查看次数

pwd来自python的bash扩展符号链接

我有一个shell,我使用pwd显示我在哪个目录.但是当我在目录中它是一个符号链接时,它显示原始目录而不是符号链接

import subprocess as sub

def execv(command, path):
    p = sub.Popen(['/bin/bash', '-c', command],
                    stdout=sub.PIPE, stderr=sub.STDOUT, cwd=path)
    return p.stdout.read()[:-1]
Run Code Online (Sandbox Code Playgroud)

如果我有文件夹/home/foo/mime,那么/usr/share/mime当我打电话时它是符号链接

execv('pwd', '/home/foo/mime')
Run Code Online (Sandbox Code Playgroud)

我得到/ usr/share/mime

我的shell代码如下所示:

    m = re.match(" *cd (.*)", form['command'])
    if m:
        path = m.group(1)
        if path[0] != '/':
            path = "%s/%s" % (form['path'], path)
        if os.path.exists(path):
            stdout.write(execv("pwd", path))
        else:
            stdout.write("false")
    else:
        try:
            stdout.write(execv(form['command'], form['path']))
        except OSError, e:
            stdout.write(e.args[1])
Run Code Online (Sandbox Code Playgroud)

我有JavaScript的客户端

(可能返回命令和新路径的结果,因为JSON会更好).

有没有办法让pwdsymlink而不是原始目录返回路径.

python bash shell interpreter pwd

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

标签 统计

bash ×3

.net ×1

git ×1

git-bash ×1

interpreter ×1

powershell ×1

pwd ×1

python ×1

shell ×1

zsh ×1