我想知道是否有任何方法可以通过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
有谁知道是否可以做这样的事情?
提前致谢。
答案 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扩展名的情况下安装脚本。我认为这是一个通常不应该使用脚本后缀安装的提示。