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

shell – 存在具有特定类型的文件的测试

发布时间:2020-12-15 21:20:03 所属栏目:安全 来源:网络整理
导读:在fish中,您可以使用test -e hello.txt测试特定文件是否存在,但我想知道是否有办法在文件名中使用通配符值,以检查是否存在任何文件类型. 更具体地说,我正在制作一个检查Xcode工作空间的快速功能,如果发现它打开它,如果没有,则检查Xcode项目,如果发现它打开,
在fish中,您可以使用test -e hello.txt测试特定文件是否存在,但我想知道是否有办法在文件名中使用通配符值,以检查是否存在任何文件类型.

更具体地说,我正在制作一个检查Xcode工作空间的快速功能,如果发现它打开它,如果没有,则检查Xcode项目,如果发现它打开,否则打印错误.

这是当前的实现:

function xcp
    open *.xcodeproj
end

function xcw
    open *.xcworkspace
end

function xc
    if test -e *.xcworkspace
        xcw
    else if test -e *.xcodeproj
        xcp
    else
        echo "No Xcode Workspace or Project in this directory."
    end
end

它在一分钟“工作”,但是当它找不到工作空间或项目文件时,它会输出一个关于没有匹配的错误.然而,这是默认情况下完成的,我想知道我是否可以以某种方式隐藏它.

这是错误输出,当它找不到工作区时,但找到一个项目并打开:

No matches for wildcard '*.xcworkspace'.  (Tip: empty matches are allowed in 'set','count','for'.)
~/.config/fish/functions/fish_prompt.fish (line 1): if test -e     *.xcworkspace
                                                           ^
in function 'xc'
    called on standard input

解决方法

试试吧:

function xc
    set -l workspaces *.xcworkspace
    set -l projects   *.xcodeproj
    if test (count $workspaces) -gt 0
        xcw
    else if test (count $projects) -gt 0
        xcp
    else
        echo "No Xcode Workspace or Project in this directory."
    end
end

(编辑:李大同)

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

    推荐文章
      热点阅读