这是我的bash代码,我想将其转换为python ...
IFS='-' read -r -a tests <<<"${test_type}"
for t in "${tests[@]}"; do
test_method="${t#*:}"
test="${t%%:*}"
case "$test" in
tls)
test_file="$test"AuthTest.py
;;
*)
test_file="$test"Test.py
;;
esac
主要的是我无法完全理解这部分代码:
for t in "${tests[@]}"; do
test_method="${t#*:}"
test="${t%%:*}"
test_method和test的价值是什么?
答案 0 :(得分:0)
要解决更广泛的可行性问题,请查看脚本的功能。
基本上,您的脚本执行以下操作:
-
分隔的一些数据,将其拆分。是的,这在Python
中非常可行。但请注意,Python
没有传统的case
构造(其中一个怪癖)。
关于&#34; "${t#*:}"
和"${t%%:*}"
正在做什么&#34;的更具体问题,请阅读背景信息:
http://www.tldp.org/LDP/abs/html/string-manipulation.html
"${t#*:}"
删除&#39;之前任意字符的最短篇幅:&#39;
"${t%%:*}"
删除&#39;之后的所有字符的最长篇幅:&#39;
这是一个愚蠢的例子来说明这一点:
$!/bin/bash
var='jim:bob:cujo:smith'
echo ${var#*:}
echo ${var%%:*}
结果:
bob:cujo:smith
jim
同样,当然这可以在Python中完成,而且几乎可以更简洁,但您必须学习如何使用python正则表达式和内置命令。