gpt4 book ai didi

shell - 测试是否存在特定类型的文件

转载 作者:行者123 更新时间:2023-12-04 23:38:52 26 4
gpt4 key购买 nike

在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

关于shell - 测试是否存在特定类型的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45098704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com