【发布时间】:2016-05-26 23:06:54
【问题描述】:
我试图通过将 python 变量导出到 shell 脚本而不是直接从用户那里读取它们来从 python 运行 shell 脚本。关于passing array values as variable to shell script 的问题早先已成功回答,并帮助我将数组中的值作为输入变量传递给shell 脚本。我想从以下python脚本中导出多个变量,例如FLUID、TTYPE和FLIBRARY:
FLUID="MDM"
TTYPE=0
FLIBRARY="RefProp"
HSPACE=[0.01, 0.009, 0.008, 0.007]
subprocess.call(['./testfile1'] + [str(n) for n in HSPACE])
到以下名为 testfile1 的 shell 脚本:
#!/bin/bash
echo "$FLUID, $FLIBRARY" | ./vls.exe
for i; do
awk 'NR==8 {$1=" " a }1' a=$i spacingcontrol.vls > tmp.vls && mv tmp.vls spacingcontrol.vls
awk 'NR==8 {$2=" " b " "}1' b=$i spacingcontrol.vls > tmp.vls && mv tmp.vls spacingcontrol.vls
done
【问题讨论】:
-
您知道如何做到这一点吗?你有没有写过代码来探索这个想法?
-
@TomKarzes 在您在上面看到的那段 python 代码中,我能够将 HSPACE 作为变量发送到 shell 脚本,但是,我不知道如何同时发送多个变量。
-
@Arya, ...当您在另一个问题中问到如何使用多个变量时,我以为您的意思是多个 数组。如果只有一个数组,则更容易变得微不足道 - 您只需将其他值放在首位,然后使用
shift将它们从列表中弹出。