是否可以在.bashrc中编写函数或脚本,当从命令行调用时,该脚本将启动下一个命令。
因此,如果我有这样定义的函数:
el() {
c0='less +G /var/log/very/long/base/'
# something happens here
}
我希望能够做到这一点:
$ el
$ less +G /var/log/very/long/base/_
也就是说,我不想键入长的部分,我只想键入el,然后将其余部分插入到下一个命令中,我可以这样完成:
$ less +G /var/log/very/long/base/path.log
我知道我可以在一个单独的tty上回显到stdout,所以也许可以稍微延迟一下管道stdin。或者bash中可能内置了一些东西。有人做过类似的事情吗?
您可以使用alias
而不是函数,甚至是环境变量,让我们称之为EL。使用后者,您可以编写类似的内容
# $EL <-- press tab here to show EL's value and complete
这将起作用。
el() { less +G /var/log/very/long/base/; }
您也可以设置别名,但当您退出终端会话时,该别名将消失。
alias el="less +G /var/log/very/long/base/"
要使别名永久化,请将该行添加到.bash_aliases
echo 'alias el="less +G /var/log/very/long/base/"' >> .bash_aliases
您还可以在.bashrc文件中添加该函数,该文件将在每次启动终端会话时创建该函数。