Python 在shell脚本中传递列表

Python 在shell脚本中传递列表,python,bash,list,shell,Python,Bash,List,Shell,这是我第一次使用shell脚本。一次传递一个元素有效。然而,我有点困惑,因为我有一个方法,它需要一个列表作为参数,目前,无论我尝试了什么,它只需要列表的第一个元素。但我只想一次通过整个名单 run.sh #!/bin/bash list = 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95; qsub job.sh "label" $list job.sh #!/bin/

这是我第一次使用shell脚本。一次传递一个元素有效。然而,我有点困惑,因为我有一个方法,它需要一个列表作为参数,目前,无论我尝试了什么,它只需要列表的第一个元素。但我只想一次通过整个名单

run.sh

#!/bin/bash
list = 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95;
qsub job.sh "label" $list 
job.sh

#!/bin/bash
python file.py $1 $2
#!/bin/bash
python file.py $*
file.py

import sys
import os
from myClass import myClass
label = sys.argv[1]
list = sys.argv[2]
myObject = myClass(label,list)
import sys
import os
from myClass import myClass
label, list = sys.argv[1], sys.argv[2:]
myObject = myClass(label, list)
试试这个

job.sh

#!/bin/bash
python file.py $1 $2
#!/bin/bash
python file.py $*
file.py

import sys
import os
from myClass import myClass
label = sys.argv[1]
list = sys.argv[2]
myObject = myClass(label,list)
import sys
import os
from myClass import myClass
label, list = sys.argv[1], sys.argv[2:]
myObject = myClass(label, list)
试试这个

job.sh

#!/bin/bash
python file.py $1 $2
#!/bin/bash
python file.py $*
file.py

import sys
import os
from myClass import myClass
label = sys.argv[1]
list = sys.argv[2]
myObject = myClass(label,list)
import sys
import os
from myClass import myClass
label, list = sys.argv[1], sys.argv[2:]
myObject = myClass(label, list)

您需要在shell中使用空格对内容进行双引号,并在赋值(=)周围放置空格


您需要在shell中使用空格对内容进行双引号,并在赋值(=)周围放置空格


谢谢你的回答。但是我忘了提到方法中还有其他参数。通过执行$*,它将考虑其他参数以及列表的一部分。如果你的例子不能说明你的要求,没有人能帮你。删减长得离谱的数字列表(这些数字不需要)并显示一个更好的示例。好的…请参阅修订版。/run.sh:第12行:意外标记附近的语法错误
list./run.sh:第12行:
list=0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95;'你真的需要简化你的例子。为什么有这么多数字?为什么在这行的末尾有一个分号?停下来读一下,谢谢你的回答。但是我忘了提到方法中还有其他参数。通过执行$*,它将考虑其他参数以及列表的一部分。如果你的例子不能说明你的要求,没有人能帮你。删减长得离谱的数字列表(这些数字不需要)并显示一个更好的示例。好的…请参阅修订版。/run.sh:第12行:意外标记附近的语法错误
list./run.sh:第12行:
list=0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95;'你真的需要简化你的例子。为什么有这么多数字?为什么在这行的末尾有一个分号?停下来读这篇文章,你应该能够切片
sys.argv
——换句话说,类似于
lst=sys.argv[2://code>(尽量避免使用
list
)。你应该能够切片
sys.argv
——换句话说,类似于
lst=sys.argv[2://code>(尽量避免使用
list
)。