Нахождение строки в переменной в ударе

У меня есть следующее в ударе:

string="/opt/directory/"

Затем, когда я делаю следующее:

if [[ $string != *"directory"* ]]

это интерпретирует, как будто каталог не в строке. Почему? Как я могу решить эту проблему?

Править:

Я чувствую себя действительно глупым об этом, я на самом деле внес несколько изменений в свой сценарий, с помощью наклонной черты вправо один из них, и я не мог вычисленный, что было неправильным приблизительно в течение часа и после того, как один из Вас упомянул, что это должно работать как это, я понял, что это было, потому что где-нибудь в середине я повторно присвоил переменную чему-то еще, вот почему это не брало его.

Возможно, я удалю этот вопрос, поскольку это действительно был мой отказ, и я не чувствую, что это добавит много к любому!

2
задан 30 November 2015 в 22:43

2 ответа

Это, кажется, работает правильно. Если я пробую это:

string="/opt/directory/"

if [[ $string != *"directory"* ]]; then
    echo "true"
else
    echo "false"
fi

Затем это правильно сообщает false. Другими словами, вопрос "делает $string не содержат *"directory"*"ложь, как $string действительно содержит *"directory"*.


Возможно, Вы означали спрашивать, "делает $string содержать *"directory"*", в этом случае необходимо использовать:

if [[ $string == *"directory"* ]]

(Отметьте использование == вместо !=.)

2
ответ дан 2 December 2019 в 03:50

Используя:

string="/opt/directory/"
if [[ $string != *directory* ]]; then
    echo "not found"
else
    echo "found"
fi
0
ответ дан 2 December 2019 в 03:50

Другие вопросы по тегам:

Похожие вопросы: