簡體   English   中英

別名中的轉義引號

[英]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 "$2"; GLOBIGNORE="$1"; }
alias f='s="$GLOBIGNORE"; GLOBIGNORE="*"; ff "$s"'

別名保存GLOBIGNORE的當前值,將GLOBIGNORE* ,並調用ff函數,將保存的GLOBIGNORE作為第一個參數傳遞給該函數。 ff函數使用無鈎別名參數查找find並恢復GLOBIGNORE 使用GNU bash 4.3.30(1)版進行測試:

f *.tex
./full.tex
./hdr.tex
./main.tex

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM