我有两台机器,其中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.
我怎样才能让Powershell像旗帜一样表现得像Bash set -e?set -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?所有我发现了这个帖子上关于咖啡博客.
我有一个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而不是原始目录返回路径.
bash ×3
.net ×1
git ×1
git-bash ×1
interpreter ×1
powershell ×1
pwd ×1
python ×1
shell ×1
zsh ×1