加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

terminal – 如何测试命令的结果是否包含fish shell中的字符串?

发布时间:2020-12-15 21:10:02 所属栏目:安全 来源:网络整理
导读:我正在尝试编写一个简短的函数,允许我从命令行打开和关闭wemo灯.基本上我有一个命令,如果我输入wemo状态将返回Switch:如果灯亮,则点亮1,如果灯关闭则点亮0.我想写一个鱼功能,基本上让我切换它们: function lights --description 'Toggle lights' if contai
我正在尝试编写一个简短的函数,允许我从命令行打开和关闭wemo灯.基本上我有一个命令,如果我输入wemo状态将返回Switch:如果灯亮,则点亮1,如果灯关闭则点亮0.我想写一个鱼功能,基本上让我切换它们:

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

虽然这不起作用.我认为parens可能会进行文本替换?任何人都知道我如何测试一个字符串是否包含Fish中的另一个字符串?

解决方法

contains似乎是测试列表是否包含元素

set elems foo bar baz
contains bar $elems; and echo yep

使用命令替换,列表似乎是面向行的:

contains "e f"   (printf "%sn" "a b c" "d e f" "g h i"); and echo y; or echo n
contains "d e f" (printf "%sn" "a b c" "d e f" "g h i"); and echo y; or echo n
n
y

使用开关匹配结果的模式是一个不错的选择.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读