通过Makefile为我的脚本创建别名

时间:2013-01-22 03:53:49

标签: bash shell makefile command-line-interface alias

我想知道是否有任何方法可以通过Makefile在用户~/.bash_aliases上设置别名。

假设我有一个名为foo.sh的bash脚本,它会打印您传递给它的内容。 E.g:

输入
sh foo.sh bar

输出
bar

现在,在我的Makefile上,我希望有类似的东西:

install:
    @echo "alias foo=sh foo.sh $@" << ~/.bash_aliases

因此,每次用户执行make install时,它都会自动拥有foo别名。然后,我们不会做最后一次输入,而是会有:

输入
foo bar

输出
bar

有谁知道是否可以做这样的事情?

提前致谢。

2 个答案:

答案 0 :(得分:0)

怎么样:

install:
    @echo "alias foo=foo.sh" >> ~/.bash_aliases

答案 1 :(得分:0)

您确定要在每次运行Makefile时向用户的~/.bash_aliases添加相同的行吗?

那些不使用bash而是另一个shell的用户呢,比如zsh

那么其他用户呢?如果管理员输入make install,他们通常希望“安装”可供系统的每个用户使用,而不仅仅是他们自己。

如果您只关心将脚本foo.sh设为foo,那么您可能应该安装一个名为foo的二进制文件。

install:
    $(INSTALL) foo.sh $(bindir)/foo

btw,Debian policy要求在没有.sh扩展名的情况下安装脚本。我认为这是一个通常不应该使用脚本后缀安装的提示。