【发布时间】:2012-02-01 07:33:57
【问题描述】:
有没有办法在命令行上“扩展”一个 bash 别名并获取它背后的命令? 例如,它会将 ls 变成;
ls --color=auto
当我的别名几乎可以做我想做的事,但不完全是……
这可能所有的建议或答案都赞赏
【问题讨论】:
标签: bash shell command-line
有没有办法在命令行上“扩展”一个 bash 别名并获取它背后的命令? 例如,它会将 ls 变成;
ls --color=auto
当我的别名几乎可以做我想做的事,但不完全是……
这可能所有的建议或答案都赞赏
【问题讨论】:
标签: bash shell command-line
试试
$ alias alias_name
它将显示给定别名的扩展名
【讨论】:
还有一种更复杂的方式,适合回显:
$ cut -d = -f1 --complement< <(alias alias_name) | tr '"'"'" ' '
所以,在这样的函数中
exp() {
cmd=$1
shift
echo $(cut -d = -f1 --complement< <(alias $cmd) | tr '"'"'" ' ') $@
}
将导致在所有扩展都到位后回显命令,因为它将被发出到 shell。
这可能对调试有用。
$ exp ll .*
ls -l --color=tty . .. .bash_history .bash_logout .bash_profile .bashrc .lesshst
【讨论】: