执行存储在另一个文件

时间:2018-03-15 21:06:11

标签: bash shell

我有一个Python脚本,需要我设置许多标志。我正在尝试编写一些shell脚本来简化执行此Python脚本的过程。

我想有两个shell脚本,params.sh和run.sh.在params.sh中,我将shell变量设置为所需的值,如下所示:

VAR1=val1
VAR2=val2
...

在run.sh中,我想获取我在params.sh中设置的变量,从每个变量的值创建一个唯一的名称,然后使用这些变量作为执行Python脚本的标志。所以在伪代码中,我想做的是

PARAMS=get_params()
UNIQUE_NAME=make_unique_name(PARAMS)
python main.py --name=$UNIQUE_NAME --VAR1=${VAR1} --VAR2=${VAR2} ...

我坚持如何创建一个带有任意数量参数的shell函数,以及如何处理params列表来执行Python脚本,因为它出现在最后一行伪代码中。任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

考虑:

#!/usr/bin/env bash

# read lines from file "vars", prefixing each with "--"
while IFS= read -r line; do
  args+=( "--$line" )
done <vars

# hash the contents of that variable
read -r _ unique_name _ < <(printf '%s\0' "${args[@]}" | openssl dgst -md5)

# use the hash as a name; then pass through the arguments
python main.py --name="$unique_name" "${args[@]}"