别名中的转义引号
Escape quotes in alias
我想写一个别名来快速搜索当前目录中的文件名(不区分大小写)。
以下作品:
alias f='find . -iname $@'
问题是当我想在搜索表达式中使用通配符时,我需要引用它们(否则 zsh 扩展首先处理通配符):
> f podfi*
zsh: no matches found: podfi*
> f "podfi*"
./Podfile
如何在我的别名中添加引号以便 f podfi*
有效?
这些尝试不起作用:
alias f='find . -iname "$@"'
alias f='find . -iname \"$@\"'
zsh 怎么样:
% alias f='noglob find . -iname $@'
% f podfi*
./Podfile
% f "podfi*"
./Podfile
%
function ff () { find . -iname ""; GLOBIGNORE=""; }
alias f='s="$GLOBIGNORE"; GLOBIGNORE="*"; ff "$s"'
别名保存 GLOBIGNORE
的当前值,将 GLOBIGNORE
设置为 *
,并调用将保存的 GLOBIGNORE
传递给的 ff
函数] 作为第一个参数。 ff
函数使用非全局别名参数调用 find 并恢复 GLOBIGNORE
。使用 GNU bash、版本 4.3.30(1)-release:
进行测试
f *.tex
./full.tex
./hdr.tex
./main.tex
我想写一个别名来快速搜索当前目录中的文件名(不区分大小写)。
以下作品:
alias f='find . -iname $@'
问题是当我想在搜索表达式中使用通配符时,我需要引用它们(否则 zsh 扩展首先处理通配符):
> f podfi*
zsh: no matches found: podfi*
> f "podfi*"
./Podfile
如何在我的别名中添加引号以便 f podfi*
有效?
这些尝试不起作用:
alias f='find . -iname "$@"'
alias f='find . -iname \"$@\"'
zsh 怎么样:
% alias f='noglob find . -iname $@'
% f podfi*
./Podfile
% f "podfi*"
./Podfile
%
function ff () { find . -iname ""; GLOBIGNORE=""; }
alias f='s="$GLOBIGNORE"; GLOBIGNORE="*"; ff "$s"'
别名保存 GLOBIGNORE
的当前值,将 GLOBIGNORE
设置为 *
,并调用将保存的 GLOBIGNORE
传递给的 ff
函数] 作为第一个参数。 ff
函数使用非全局别名参数调用 find 并恢复 GLOBIGNORE
。使用 GNU bash、版本 4.3.30(1)-release:
f *.tex
./full.tex
./hdr.tex
./main.tex