我有一个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脚本,因为它出现在最后一行伪代码中。任何建议都将不胜感激。
答案 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[@]}"