【发布时间】:2019-01-20 16:50:23
【问题描述】:
我对 shell 的了解非常少,我正在做一个小任务,需要一些帮助。
我得到了一个可以解析命令行参数的 python 脚本。这些参数之一称为“-targetdir”。当 -targetdir 未指定时,它默认为用户机器上的 /tmp/{USER} 文件夹。我需要将 -targetdir 指向特定的文件路径。
我实际上想在我的脚本中做这样的事情:
设置 ${-targetdir, "文件路径"}
这样python脚本就不会设置默认值。有人知道该怎么做吗?我也不确定我是否提供了足够的信息,所以如果我有歧义,请告诉我。
【问题讨论】:
-
不清楚您期望
set语法实际上执行 (它不 更改bash 中常规shell 变量的值)。如果您想将脚本的参数解析为变量,我们有一些现有的问答条目以及最佳实践... -
...见BashFAQ #35 的一些例子;那里的第一个大代码块接受
--files设置变量file、-v更改变量verbose等。 -
...也就是说,我想知道您是否想要做的是 wrap 带有 shell 函数的 Python 脚本或添加
-targetdir参数的脚本(如果有)不是已经给了吗?这是可行的,如果不搜索它是否已经在知识库中,我不知道。 -
顺便说一句,如果您的 Python 程序 确实 从环境中获取
targetdir(正如问题上的标记所暗示的那样),而不是在缺席的情况下回退到/tmp如果没有明确的标志,这个问题将没有实际意义:您可以只使用export targetdir=filepath,然后依靠 Python 代码来查找os.environ['targetdir']。
标签: shell command-line environment-variables command-line-arguments