У меня есть следующее в ударе:
string="/opt/directory/"
Затем, когда я делаю следующее:
if [[ $string != *"directory"* ]]
это интерпретирует, как будто каталог не в строке. Почему? Как я могу решить эту проблему?
Править:
Я чувствую себя действительно глупым об этом, я на самом деле внес несколько изменений в свой сценарий, с помощью наклонной черты вправо один из них, и я не мог вычисленный, что было неправильным приблизительно в течение часа и после того, как один из Вас упомянул, что это должно работать как это, я понял, что это было, потому что где-нибудь в середине я повторно присвоил переменную чему-то еще, вот почему это не брало его.
Возможно, я удалю этот вопрос, поскольку это действительно был мой отказ, и я не чувствую, что это добавит много к любому!
Это, кажется, работает правильно. Если я пробую это:
string="/opt/directory/"
if [[ $string != *"directory"* ]]; then
echo "true"
else
echo "false"
fi
Затем это правильно сообщает false
. Другими словами, вопрос "делает $string
не содержат *"directory"*
"ложь, как $string
действительно содержит *"directory"*
.
Возможно, Вы означали спрашивать, "делает $string
содержать *"directory"*
", в этом случае необходимо использовать:
if [[ $string == *"directory"* ]]
(Отметьте использование ==
вместо !=
.)
Используя:
string="/opt/directory/"
if [[ $string != *directory* ]]; then
echo "not found"
else
echo "found"
fi