标签: xonsh

如何在xonsh中编写多命令别名?

在bash和zsh我曾经写过:

alias nb='cd /home/lincoln/Dropbox/nupis/ && jupyter notebook'
Run Code Online (Sandbox Code Playgroud)

但是在xonsh中,这会返回一个错误,指出找不到该命令.关于别名的教程部分说我应该做类似的事情:

aliases['g'] = 'git status -sb' 
Run Code Online (Sandbox Code Playgroud)

我只能在一个命令的情况下完成这项工作,但是当我尝试我的bash示例的两个命令时,它抱怨我给了太多的输入cd.

注意:我知道我可以从其他shell导入别名,但我有兴趣学习在xonsh中执行此操作.

shell xonsh

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

如何在 xonsh shell 中将 Python 构造的输出通过管道传输到另一个命令?

xonshshell 中,如何将 Python 构造的输出通过管道传输到另一个命令?所需的示例:

for v in ${...}: print ("{}={}".format(v,${v})) | head
Run Code Online (Sandbox Code Playgroud)

for v in ...是 Python 构造,head也是我想要通过管道传输其输出的命令。

上面的命令行不起作用;我总是收到以下错误:

NameError: name 'head' is not defined
Run Code Online (Sandbox Code Playgroud)

看起来xonsh没有为管道符号保留 Python 模式(请参阅xonsh 文档中的“管道”)。- 那么,我如何指示xonsh将此处的管道字符理解为子进程模式符号?

python xonsh

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

使用xonsh使用ls循环文件

我想用xonsh来压缩目录中的几个文件.我首先尝试以下方法:

$ ls
table_aa.csv    table_amgn.csv  table_csco.csv  table_esrx.csv  table_hal.csv  table_jbl.csv  table_pcg.csv   table_zmh.csv
table_aapl.csv  table_amzn.csv  table_d.csv     table_gas.csv   table_hp.csv   table_jpm.csv  table_usb.csv
$ for fn in ls:
..    bzip2 fn
..
NameError: name 'ls' is not defined
Run Code Online (Sandbox Code Playgroud)

好的,所以我$()明确使用

$ for fn in $(ls).split():
.     bzip2 fn
bzip2: Can't open input file fn: No such file or directory.
bzip2: Can't open input file fn: No such file or directory.
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

$ xonsh --version
('xonsh/0.3.4',)
Run Code Online (Sandbox Code Playgroud)

xonsh

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

如何在 xonsh 的 for 循环中运行 shell 命令?

我想用来对目录中的所有文件xonsh执行。我可以使用,但这似乎是. 这是我迄今为止尝试过的:pandocmdsubprocessxonsh

from glob import glob
import os
for fn in glob('*.md'):
    bname, _ = os.path.splitext(fn)
    pandoc $fn > ${bname}.html
Run Code Online (Sandbox Code Playgroud)

有了这个,我得到了一个SyntaxError

SyntaxError: :3:11: ('code: $fn',) pandoc $fn > ${bname}.html

如果我将最后一行更改为: pandoc $fn > $bname.html,我会得到:

pandoc: $fn: openBinaryFile: 不存在(没有那个文件或目录)

我认为问题在于for循环内部是 Python 模式,但pandoc调用必须处于子进程模式。这应该怎么做?

python shell xonsh

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

标签 统计

xonsh ×4

python ×2

shell ×2