Почему этот сценарий .sh запускается на CentOS, но не на Ubuntu?

Я пытаюсь запустить этот простой скрипт, который успешно работает в CentOS, но не в Ubuntu. {{1} } Скрипт запускается успешно, но не может попасть в условие if и сразу переходит к else.

Есть ли синтаксическая ошибка в цикле if? Идея состоит в том, чтобы получить содержимое файла output2.txt в переменной с именем value (это команда в порядке?) И проверить if subtext 512.00GB включить в текст (в значение ) ...

sudo msecli -L > output2.txt
value=`cat output2.txt`
check="512.00GB"
#echo "$value"
if [[ "$value" == *"$check"* ]]; then
  echo "The SSD is 512GB"
sudo msecli -L >> output.txt
sudo nvme delete-ns -n 1 /dev/nvme0
sudo nvme delete-ns -n 1 /dev/nvme1
sleep 1
sudo msecli -N -q 100 -n /dev/nvme0 -r
sleep 1
sudo msecli -N -q 100 -n /dev/nvme1 -r
sleep 2
sudo reboot
else
sudo msecli -L >> output.txt
echo "***** The SSD is READY!!! *****"
fi

Мы получаем ошибку в строке 5 [[, которая кажется, что команда if не работает.

Я использовал следующий пример, который я нашел в Интернете для поиска подтекста в тексте:

#example
#STR='GNU/Linux is an operating system'
#SUB='Linux'
#if [[ "$STR" == *"$SUB"* ]]; then
#  echo "It's there."
#fi
2
задан 20 April 2021 в 13:27

0 ответов

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

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