Questions tagged «zsh»

Zsh是具有许多高级命令行和脚本功能的shell。

1
zsh解释/忽略以“#”开头的命令作为注释
在bash中,如果我键入以a开头的命令'#',则bash会将其作为注释忽略。 即,在bash提示符下将忽略以下内容: > # Hi there! 而在zsh中: > # Hi there ! zsh: bad pattern: # 我怎样才能要求zsh做同样的事情? 这对于“存储”要在以后运行的命令或使用共享tmux / screen会话聊天时非常有用。 我正在使用“ 哦,我的zsh ”
28 command-line  zsh 

2
是否有理由将Zsh数组的第一个元素索引为1而不是0?
根据我对现代编程和脚本语言的经验,我相信大多数程序员通常习惯于将0数组的第一个元素称为索引。 使用1有什么实质性的优势? 我敢肯定,除了Zsh之外,我还听说过更多其他与数组类似的语言;我也很好,因为它同样方便。 但是,由于以前发行和广泛使用的shell脚本语言(例如ksh和bash都使用0), 为什么有人会选择更改此通用“标准”? 我对我的问题的立即回答是“当然不是”。 那么,我能想到的关于外壳的这种“专有功能”的唯一解释是“ 他们只是这样做是为了炫耀更多酷的外壳 ”。 我对Zsh或它的历史一无所知,而我对此琐碎的理论很有可能没有任何意义。 对此有解释吗?还是只是出于个人品味?
27 zsh  history  array 

3
zsh:禁用“文件存在:”警告并带有重定向
如何覆盖file exists:来自zsh 的警告? > echo > newfile.txt > echo > newfile.txt zsh: file exists: newfile.txt 在这些情况下,我希望外壳程序不要抱怨,而只需覆盖文件(如bash)即可。 同样,如何覆盖以下内容: $ ls >> /tmp/testfile.txt zsh: no such file or directory: /tmp/testfile.txt



2
函数,别名和可执行文件中的连字符是否存在问题?
在我的测试中(在Bash和Z Shell中),我发现定义函数或别名或名称中带有连字符的可执行Shell脚本没有问题,但是我不确定在所有Shell和所有用例中都可以做到这一点。 我想这样做的原因是连字符比下划线更容易键入,因此更快捷,更流畅。 我不敢相信这不是问题的一个原因是,在某些语言(例如Ruby)中,即使连字符之间没有空格,连字符也会被解释为减号。如果在某些shell中可能会发生类似的事情,这也不会令我感到惊讶,在连字符中连字符被解释为即使没有空格也会发出信号。 我有点怀疑的另一个原因是我的文本编辑器搞砸了带有连字符的函数的语法高亮显示。(但是,当然,这很可能只是shell脚本的语法高亮显示配置中的一个错误。) 有什么理由避免连字符吗?
25 bash  shell  zsh  ksh  csh 

5
是否建议使用zsh而不是bash脚本?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4天前关闭。 我可以假设已经zsh安装了足够的人来运行带有 #!/usr/bin/env zsh 如shebang? 还是这会使我的脚本在太多系统上无法运行? 澄清:我对最终用户可能要运行的程序/脚本感兴趣(例如在Ubuntu,Debian,SUSE,Arch&c。上)

2
如何重置外壳环境?
这个问题困扰了我一段时间,尽管我认为我已经通过EnvWatcher找到了答案,但不幸的是,它仅适用于Bash。我用zsh。 我想在较小程度上复制env-watcher的功能,但是我需要知道是否有命令可以将shell重置为干净的启动阶段。 例如,我想要以下工作流程。 source some-functions alias another-thing export SVN_EDITOR=vim RESET-ZSH # none of the above are valid any more 有这种内在的可能性,还是我在追蝴蝶?

4
Ctrl +向左/向右箭头键
在最后一次系统更新后,zsh终端上的ctrl +左/右箭头命令不执行任何操作。ctrl + u也有问题,因为通常该命令从光标删除到行的开头,而现在却删除了整行。有人知道如何解决这些问题吗?谢谢你们。

2
如何使zsh“正确”功能记住我的拼写更正决定
我已经启用校正(我不会把它自动更正在zsh中通过启用特别是因为这个问题)setopt correct我.zshrc。 现在,当我输入dtae一个终端时,我得到: dtae zsh: correct 'dtae' to 'date' [nyae]? y Tue Mar 31 11:39:31 CEST 2015 此时,我希望zsh记住我的决定。因此,下次输入时,dtae它应该自动更正为date[1]。但是,这不会发生,zsh再次问我该怎么做: dtae zsh: correct 'dtae' to 'date' [nyae]? [1]当然,除非当时存在一个实际的dtae命令或别名。 更新: 我设法修改了zsh源代码(file utils.c,function spckword)以创建一个自定义文件,其中包含通过调用zsh的“正确”功能自动创建的别名: 原版的: if (x == 'y' || x == ' ' || x == '\t') { *s = dupstring(best); if (hist) …

2
bash的export -f的zsh等效项是什么
因此我开始使用zsh。我喜欢它。看起来很酷,很漂亮,并且当前的工作目录和实际的命令行位于不同的行是一个很好的事实,但是与此同时,我注意到这zsh可能会比慢一些bash,尤其是在将文本打印到屏幕。 我最喜欢的事情是,它zsh与我在中定义的所有功能“向后兼容” .bashrc。 虽然有一个抱怨。这些功能都可以完美地工作,但是我无法弄清楚导出系统是如何工作的。 我.bashrc导出了其中一些功能,以便可以在其他地方使用它们,例如在脚本和外部程序中使用export -f。 在zsh中,似乎甚至没有谈论导出。它是自动加载吗?这两件事是一样的吗?我很难解决这个问题。

2
zsh中按字典顺序的文件多位数范围
我想通过globing在zsh中指定一个带有两个整数(例如2到57)的文件范围(按字典顺序)。 例如:“按目录顺序在匹配某些glob模式的路径下选择文件2到57”。 我认为使用方括号会做到这一点 for x in /foo/bar/*[2-57]; do print $x; done 但岩组显然认为我要求的文件2到5(或类似的东西),而不是文件2来57。有什么想法吗?我该怎么做?
24 zsh  wildcards 

4
在zsh和bash之间共享别名和PATH设置
我通常使用的外壳是zsh。我有一些别名,可以在ls和程序中启用颜色grep。我还设置了自定义路径,以便可以在非标准位置(例如在中~/bin/)执行程序。 我不会将root的shell更改为zsh,但是我想共享这些设置,以便root也可以拥有它。我发现这zsh不是采购/etc/profile。我可以在中获取它/etc/zsh/zprofile,但我想使用其他更“适当”的方式。
24 shell  bash  zsh  path  alias 

4
如何从没有匹配项的glob模式中静默获取空字符串
说我有一个包含三个文件的文件夹: foo1 foo2 bar 1. 如果我跑步 list_of_files=$(print foo*) echo $list_of_files 我得到: foo1 foo2 2.如果我跑步 list_of_files=$(print bar*) echo $list_of_files 我得到: bar 3.但是,如果我跑步 list_of_files=$(print other*) echo $list_of_files 我得到:(尽管zsh: no matches found: other*变量$list_of_files为空) 有没有办法让zsh不抱怨它是否不能与glob扩展匹配? 我的目标是使用上述机制来静默收集与给定的glob模式匹配的文件列表。
24 zsh  wildcards 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.