我正在一个需要makefile文件并且需要解析下面输入示例的类项目中使myapp arg1 arg2 arg3 arg4 ....
所以我创建了一个myapp.py
import sys
program_name = sys.argv[0]
arguments = sys.argv[1:]
count = len(arguments)
for x in sys.argv:
print("Argument: ", x)
我创建一个Makefile
all:
alias testapp="python3 myapp.py"
这样做可以让我写$ testapp arg1 arg2 arg3 ...如果我在终端中手动输入别名语句,则它可以正常工作,但是在Makefile中运行时,它对我不起作用。有什么解决办法吗?预先谢谢你
这不特定于make
。
默认情况下,仅交互式外壳程序支持别名。
此外,在子进程中运行的任何代码(即您运行的不是内置Shell的任何命令)将无法在父进程中进行任何更改(别名,变量等)。
完成所需内容的简单方法是使myapp.py
可执行;
chmod +x myapp.py
然后在您的PATH
上的目录中创建您想要使用的名称的符号链接。假设$HOME/bin
已经存在并且已经在您的PATH
上,只需
ln -s $(pwd)/myapp.py $HOME/bin/testapp
在您拥有myapp.py
的目录中。
别名有一些缺点;也许更喜欢使用别名的shell函数。