我的.bash_profile
中有一些简单的别名(OS X El Capitan,10.11.6)。有时,我想要执行相同操作的多个别名。例如,我有一个文件夹,这是我进行项目编程的起点。目前,我对代码有一个别名,而对于编程则有一个别名:
alias code='cd /path/to/Programming/; clear; pwd; ls'
alias programming='cd /path/to/Programming/; clear; pwd; ls'
这使我不必记住如何别名此目录。有没有一种方法可以设置多个别名而不必重复执行该命令?简而言之,有这样的事情吗?
alias code,programming='cd /path/to/Programming/; clear; pwd; ls'
答案 0 :(得分:2)
您可以使用
SubFlow
甚至在单个alias code='cd /path/to/Programming/; clear; pwd; ls'
alias programming='code'
语句中有多个分配,请参见chepner's answer。
扩展别名时,将再次检查第一个单词是否是别名,因此您可以“链接”它们,请参见the manual:
测试替换文本的第一个单词是否具有别名,但是与被扩展的别名相同的单词不会第二次扩展。
这允许使用别名
alias
没有无限递归。
答案 1 :(得分:2)
每个正文只能提供一个名称,但是可以在同一命令中将一个名称定义为另一个名称的别名。例如,
void showObjText(Object obj)
{
bool bTableCell = cell(obj)
if(bTableCell == true)
{
print "Table Cell! \n"
displayRich("Am atleast finding tables")
}
if (obj."Object Heading" "" != "")
{
font(getCanvas, level(obj), 1)
displayRich(number(obj) " " obj."Object Heading" "")
}
if (obj."Object Text" "" != "")
{
font(getCanvas, level(obj), 0)
displayRich(richTextWithOle(obj."Object Text"))
}
}
showObjText(obj)
在实践中,我建议为“实际”函数定义一个函数而不是别名。
alias code='cd /path/to/Programming/; clear; pwd; ls' programming=code
在不相关的切线上,code () {
cd /path/to/Programming
clear
pwd
ls
}
alias programming=code
确实允许为单个函数定义多个名称:
zsh
答案 2 :(得分:2)
简而言之,有这样的东西吗?
alias code,programming='cd /path/to/Programming/; clear; pwd; ls'
是的,大括号扩展:
alias {code,programming}='cd /path/to/Programming/; clear; pwd; ls'
答案 3 :(得分:1)
您可以这样做:
alias foo='ls' # Arbitrary command. I've used ls for example
alias bar='foo' # Use alias from previous definition
这也可以是一行:
alias foo='ls' bar='foo'
有关更多信息,请在您的shell中输入help alias
。
顺便说一句,我将这些别名放入.bashrc
而不是.bash_profile
:https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html#Bash-Startup-Files