【发布时间】:2020-09-29 09:07:54
【问题描述】:
我需要将字符串列表从 python 传递到 shell 脚本。
目标: 在 Shell 脚本中,
1)shell 脚本应该接受作为参数传递的字符串列表。
2)我需要循环该列表并打印循环内的字符串。
我尝试过的:
main.py
import subprocess
ssh_key_path = #KEY_PATH
ip_address = #BASTION_IP
Details = #Somedata
list_1 = ["apple","banana","carrot"]
script = subprocess.call([sh,fruits.sh,ssh_key_path,ip_address,Details,list_1])
fruits.sh
ssh -i $1 ubuntu@$2 -o StrictHostKeyChecking=no << EOF
printf $3 >/home/Details.txt
fruits = $4
for i in $4; do
echo "$i"
done
echo "Success"
EOF
输出来自 fruits.sh:(预期输出)
apple
banana
carrot
Success
错误: 预期的 str、bytes 或 os.PathLike 对象,而不是列表。
那么,如何将列表传递给shell脚本并在其中执行?
【问题讨论】:
标签: python bash list shell parameters