Сравнение подстроки строки - PullRequest
0 голосов
/ 07 мая 2020

Как я могу проверить наличие подстроки 0 в строке на первой позиции в оболочке bash? В приведенном ниже коде говорится, что команда неверна.

#!/bin/bash
Stdalt=$(date +"%H")
if ["${Stdalt:0:1}" -eq "0"]
then
...
fi

1 Ответ

0 голосов
/ 07 мая 2020

Оператор сравнения == ведет себя по-разному в двойных скобках

[[ $Stdalt == 0* ]]   # True if $Stdalt starts with Stdalt "0" (wildcard matching).
[[ $Stdalt == "0" ]] # True if $Stdalt is equal to 0* (literal matching).

здесь то, что вы ищете:

#!/bin/bash
Stdalt=$(date +"%H")
if [[ $Stdalt == 0* ]]
then
    echo "Yes"
fi

также, вы можете выбрать только часть строка, которую вы хотите проверить:

if [[ "${Stdalt:0:1}" = "0" ]]
then
.
.
fi
...