getopts如何设置bash变量

getopts如何设置bash变量,bash,getopts,Bash,Getopts,我想重新实现我自己的getopts(如果可能的话,用python) 我的问题是我不明白这是怎么可能的: # The call of the following script ./script -h #!/bin/bash getopts 'h' TEST # output nothing echo $TEST # output h env | grep # output nothing 我们在互联网上读到,不能在父进程中设置变量。但这是在这里完成的,没有出口 我想了解它是如何工作的,就像我

我想重新实现我自己的getopts(如果可能的话,用python)

我的问题是我不明白这是怎么可能的:

# The call of the following script
./script -h

#!/bin/bash

getopts 'h' TEST # output nothing
echo $TEST # output h
env | grep # output nothing
我们在互联网上读到,不能在父进程中设置变量。但这是在这里完成的,没有出口

我想了解它是如何工作的,就像我想在python中做的一样。所以我的第二个问题是,在python中也可以这样做吗


非常感谢!:)

getopts
是bash内置的。由于它在shell进程中运行,因此欢迎随意更改shell变量。

getopts
是bash内置的。因为它在shell进程中运行,所以欢迎随意更改shell变量。

简单:
getopts
没有在子进程中运行。简单:
getopts
没有在子进程中运行。好的,我想我明白了,我已经看到了术语“bash builtin”,但显然没有理解它。在python中也可以这样做吗?执行python bash内置^^^否。python是一个单独的过程。添加/更改bash内置需要编辑bash源代码并重新编译修改后的版本。如果没有它,最接近的方法就是编写一个bash函数来做你想做的事情——但是它必须用bash编写,而不是Python。好吧,我想我明白了,我已经看到了“bash builtin”这个术语,但显然没有理解它。在python中也可以这样做吗?执行python bash内置^^^否。python是一个单独的过程。添加/更改bash内置需要编辑bash源代码并重新编译修改后的版本。如果没有它,最接近的方法就是编写一个bash函数来实现您想要的功能——但它必须用bash编写,而不是用Python编写。