将shell脚本转换为python脚本

时间:2016-03-30 06:22:03

标签: python bash

这是我的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的价值是什么?

1 个答案:

答案 0 :(得分:0)

要解决更广泛的可行性问题,请查看脚本的功能。

基本上,您的脚本执行以下操作:

  1. 读取由-分隔的一些数据,将其拆分。
  2. 通过这些行循环进行字符串替换。
  3. 根据这些结果执行一些条件逻辑。
  4. 是的,这在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正则表达式和内置命令。