我有一个python脚本“program.py”,需要2个命令行参数。
当我想在命令行上运行这个程序时,我应该输入:
./python myprogram.py arg1 arg2
但是,我想在没有“python”和“.py”
的情况下运行我的脚本换句话说,我想这样做:
./myprogram arg1 arg2
我写了一个shell脚本“myprogram.sh”:
#!/bin/bash
python myprogram.py
但是我仍然需要输入
./sh myprogram.sh arg1 arg2
这仍然不是我想要的
有没有办法实现这个目标?
由于
答案 0 :(得分:3)
作为myprogram.py
的第一行,请填写以下内容:
#!/usr/bin/env python
然后,在命令行中,在与myprogram.py
相同的目录中,输入以下命令:
mv myprogram.py myprogram
chmod +x myprogram
你们都准备好了!
答案 1 :(得分:1)
在脚本的开头添加一个shebang,类似
#! /usr/bin/env python
文件扩展名无论如何。所以只需将文件命名为“program”而不是“program.py”。
然后给自己执行它的权利
chmod +x myprogram
或者让它对每个人都可执行:
chmod a+x myprogram
然后从shell中调用它
./myprogram arg1 arg2
这里有一个完整的例子:
$echo "#! /usr/bin/env python
> print('Here be dragons.')" > program
$chmod +x program
$./program
Here be dragons.
$