如何在shell中创建我自己的bash命令选项

如何在shell中创建我自己的bash命令选项,bash,shell,ubuntu,Bash,Shell,Ubuntu,我对bash没有太多经验,我需要从我的ubuntuvm终端运行一个python文件。python文件需要一些作为参数传入的用户输入,我想知道是否有任何方法可以让我拥有用户输入之后的自定义选项 我尝试了“alias options=”,但不幸的是,我在这里不需要它 我想要这样的东西: python test.py -name [name] -gender [gender] 希望有人能帮忙。好的,我想我理解你的问题,但如果我错了,请随时告诉我 所以你想运行一个脚本,这个脚本接受命令行参数,你想

我对bash没有太多经验,我需要从我的ubuntuvm终端运行一个python文件。python文件需要一些作为参数传入的用户输入,我想知道是否有任何方法可以让我拥有用户输入之后的自定义选项

我尝试了“alias options=”,但不幸的是,我在这里不需要它

我想要这样的东西:

 python test.py -name [name] -gender [gender] 

希望有人能帮忙。

好的,我想我理解你的问题,但如果我错了,请随时告诉我

所以你想运行一个脚本,这个脚本接受命令行参数,你想在运行脚本时接受终端的用户输入。有多种方法,一种简单的方法是声明一个函数来包装解析stdin和创建选项的逻辑,如:

root@mybox[/tmp] Fri Jul 05 <09:07:24>
--> function wrap_script {
> read -p 'Enter gender:' opt1
> read -p 'Enter name:' opt2
> echo "Here you'd call test.py using -gender $opt1 and -name $opt2"
> }
root@mybox[/tmp] Fri Jul 05 <09:08:14>
--> wrap_script
Enter gender:foo
Enter name:bar
Here you'd call test.py using -gender foo and -name bar
root@mybox[/tmp] Fri Jul 05 <09:08:19>
root@mybox[/tmp]2005年7月5日星期五
-->函数包装脚本{
>阅读-p“输入性别:”opt1
>读取-p'输入名称:'opt2
>echo“在这里您可以使用-gender$opt1和-name$opt2调用test.py”
> }
root@mybox[/tmp]2005年7月5日星期五
-->换行脚本
输入性别:foo
输入名称:bar
在这里,您可以使用-gender-foo和-name-bar调用test.py
root@mybox[/tmp]2005年7月5日星期五

如果要保留该函数,请确保在登录时直接在.bash_配置文件中或通过其他文件获取该函数。

您可以编写一个简短脚本来处理选项,然后调用该脚本。如果您想要求选项的顺序为
-name
-gender
,并删除这两个选项标签,然后简单地传递
Joe M
,那么使用位置参数
$1
$2
就变得微不足道了。别名不允许您操纵参数,考虑使用一个函数代替:<代码>函数MyPythOnScript(){Python Test.py-Nead“$ 1”-性别“2美元”;}。也就是说,如果您可以修改python脚本,那么我将接受David C.Rankin的建议。您的python程序将负责解析命令行参数。读到关于和/或@glennjackman的文章,我的想法是一样的,但乍一看,我们可能都误解了这个问题。看起来OP不是python脚本的作者,而且脚本已经解析了命令行参数。我想OP想要一个快捷方式,使用一些固定参数和一些自定义参数调用脚本,而不必每次都写出固定参数。@Aaron,…旁白:最好在那里去掉
函数
my_python_script(){…}
与所有兼容POSIX的shell兼容,而
function my_python_script(){…}
仅在那些支持POSIX和遗留ksh语法不匹配的shell中可用(后者只是
function my_python_script{
而不支持
()
).谢谢,这就是我需要的东西!