我正在尝试编写一个简短的函数,以允许我从命令行打开和关闭wemo指示灯。基本上,我有一个命令,如果我键入wemo status,则在灯光打开时将返回Switch: Lights 1,或者在灯光熄灭时返回0。我想编写一个fish函数,从本质上讲,我可以切换它们:

function lights --description 'Toggle lights'
    if contains (wemo status) "Lights 1"
        wemo switch "Lights" off
    else
        wemo switch "Lights" on
    end
end

虽然这不起作用。我认为原谅可能是文字替换?任何人都知道如何在Fish中测试一个字符串是否包含另一个字符串?

最佳答案

所以我最终用以下方法解决了这个问题:

# Toggle lights
function lights --description "Toggle Wemo Lights"
    set -l wemo (wemo status)
    switch $wemo
        case '*1'
            wemo switch "Lights" off
        case '*0'
            wemo switch "Lights" on
    end
end

关于terminal - 如何测试命令结果是否在fish shell中包含字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21489086/

10-12 02:16