Bash: строка содержит дефис
Я пытаюсь увидеть, содержит ли string1 другую string2. Я делаю это следующим образом:--4-->
a=$(tempfile)
echo "eafg" > $a
if [[ $a == *e* ]]
then
echo "contains"
fi
Теперь я пытаюсь увидеть, содержит ли строка дефис:
a=$(tempfile)
echo "22:00:00-02:00" > $a
if [ $a == *-* ]
then
echo "contains"
fi
Это не работает. Я тоже попробовал:
if [ $a == *--* ]
if [ $a == *---* ]
if [[ $a == *-* ]]
if [[ $a == *--* ]]
if [[ $a == *---* ]]
без успеха...
спасибо заранее
2 ответов
следующий фрагмент кода приносит проблемы
a=$(tempfile)
echo "22:00:00-02:00" > $a
вот вы пишете в $a
а затем попробуйте сделать строка сравнение.
попробовать следующие
a="22:00:00-02:00"
if [[ $a == *-* ]]
then
echo "contains"
fi
вы перенаправили строку на , так что читать его из файла при сравнении.
переменная a
содержит имя файла, а не содержание.
говорят:
if [ $(<$a) == *-* ];
then
echo "contains"
fi
следующее
if [[ $a == *e* ]];
then
echo "contains"
fi
работал для вас, потому что переменная, содержащая имя файла, содержала букву e
.