Fish Shell: проверить, если строка содержит подстроку - PullRequest
0 голосов
/ 09 июля 2019

В настоящее время я пытаюсь проверить, содержит ли моя строка, содержащая путь, конкретную строку.

Я уже пробовал сравнение bash:

  1. если [$ path = $ needle ]

и

  1. если [$ path = ~ $ needle]

Я также пробую ключевое слово "содержит". Но я не уверен, если я буду использовать это со строкой ..

К сожалению, все эти попытки провалились. : /

function next_dir
    set foundcwd 0
    set cwd $PWD
    set error 'There is no next directory to navigate to...'

    if [ -z $cwd ]
        echo $error
    else
        echo $cwd
        for d in ../*/
            set needle (string split "/" -- $d)[2]

            if [ $foundcwd = 1 ]
                cd $d
                break
            end

            if [ $cwd =~ $needle ]
                $foundcwd = 1
            end
        end
    end
end

Цель моей функции - перейти к следующему (родному) каталогу.

/ mnt / c / workingdirectory / repoA -> текущий каталог / mnt / c / workingdirectory / repoB -> перейти к repoB

1 Ответ

2 голосов
/ 09 июля 2019

Вы хотите string match.

if string match -q  -- $needle $path
...