我正在编写一个别名(alias),用于删除包含整数的一系列目录。然而,我无法想出如何替换数值,例如322和394,以便在输入命令时添加2个变量(参数)。
以下是当前状态的alias。
alias rRange='ls -1 | awk -F'"'"'v'"'"' '"'"'{if ( ($2>=322) && ($2<=394) ) print "rm -fRv " $0 }'"'"''
但我希望您能够输入:
rRange 322 394
目前这些值是硬编码在其中的,我希望你能够驾驶那个别名。
eval echo {$a..$b}
是非标准的。数字花括号扩展从未设计为具有定义范围(或增量)的变量。任何时候,如果您不得不在除算术或匹配表达式之外的其他内容上调用eval
,请仔细检查 bash 手册。 - David C. Rankinecho
时,变量已经被扩展为常量。它可以工作,但我同意这是边缘可靠的领域。也许eval“echo {$a..$b}”
会更清晰。当然,引号会破坏由星号包围的情况。 - arielf