Bash 在命令调用后使用别名

Bash 在命令调用后使用别名,bash,terminal,alias,Bash,Terminal,Alias,我想知道是否可以在命令调用后使用别名,其中我的别名是alias redirect='2>&1 | tee'。例如: seq 1 5 2>&1 | tee one2five.txt # case A 案例A有效 seq 1 5 redirect one2five.txt # case B 案例B不起作用 非常感谢您的帮助。您可以使用定义为以下内容的变量: REDIRECT='2>&1 | tee' 然后,在执行命令行之前,您需要额外的求

我想知道是否可以在命令调用后使用别名,其中我的别名是
alias redirect='2>&1 | tee'
。例如:

seq 1 5 2>&1 | tee one2five.txt       # case A
案例A有效

seq 1 5 redirect one2five.txt         # case B
案例B不起作用


非常感谢您的帮助。

您可以使用定义为以下内容的变量:

REDIRECT='2>&1 | tee'
然后,在执行命令行之前,您需要额外的求值步骤在命令行上转换变量:

eval seq 1 5 ${REDIRECT} one2five.txt

IIRC,
alias
仅替换命令的开头。如果您使用的是bash,则可以使用不可移植的
|&
对stdout和stderr进行管道传输,这比
重定向
的类型短。