别名中的引号

时间:2015-09-16 08:19:12

标签: linux bash zsh

我想写一个别名来快速搜索当前目录中的文件名(不区分大小写)。

以下作品:

alias f='find . -iname $@'

问题是,当我想在搜索表达式中使用wilcards时,我需要引用它们(否则zsh扩展首先处理通配符):

> f podfi*
zsh: no matches found: podfi*
> f "podfi*"
./Podfile

如何在别名中添加引号以便f podfi*有效?

这些试探措施不起作用:

alias f='find . -iname "$@"'
alias f='find . -iname \"$@\"'

2 个答案:

答案 0 :(得分:2)

对于zsh来说这是怎么回事:

% alias f='noglob find . -iname $@'
% f podfi*
./Podfile
% f "podfi*"
./Podfile
%

答案 1 :(得分:2)

function ff () { find . -iname "$2"; GLOBIGNORE="$1"; }
alias f='s="$GLOBIGNORE"; GLOBIGNORE="*"; ff "$s"'

别名会保存GLOBIGNORE的当前值,将GLOBIGNORE设置为*,并调用ff函数将其保存的GLOBIGNORE作为ff第一个参数。 GLOBIGNORE函数使用unglobled alias参数调用find并恢复f *.tex ./full.tex ./hdr.tex ./main.tex 。用GNU bash测试,版本4.3.30(1) - 发布:

from itertools import count, islice

def gen_url(places=3):
    for i in count(1):
        yield "{{:0{}d}}".format(places).format(i)

url = "www.testpage.com/"
list_of_urls = [url+c+x+"&show=more" for c in "xyz" for x in islice(gen_url(), 0, 2)]