Ваши результаты не совпадают с моими
echo 'some test here' > file.txt
grep test file.txt
echo $? # returns 0
echo 'something else here' > file.txt
grep test file.txt
echo $? # returns 1
Более того, когда я запускаю ваш собственный пример полного кода, я получаю "успех" или "неудачу" в зависимости от того, существует ли ключевое слово в файле или нет. (Я добавил недостающий пробел между 0
и ]
, потому что иначе вы получили бы ошибку, -bash: [: missing `]'
и вы не сообщили об этом.)
grep test file.txt
if [ "$?" -eq 0 ]
then
echo success
else
echo fail
fi
Однако в качестве предложения по стилю я бы протестировал команду grep
напрямую, вот так
if grep test file.txt
then
echo success
else
echo fail
fi
Мне просто показалось, что вы хотите использовать возвращаемое значение из grep
после вашего if
... fi
блока. В этом случае просто сохраните значение и продолжайте:
grep test file.txt
ss=$?
if [ 0 -eq $ss ]
then
echo success
else
echo fail
fi
# Here $ss still contains the return value from grep
512 байт, доступных в MBR, далеко не достаточно для всех функций Grub2. Код в MBR(boot.img
)загружает следующую часть (core.img
), которая обычно хранится в секторах диска между MBR и первым разделом. core.img
содержит код, который понимает файловую систему и может получить доступ к /boot/grub
, который содержит остальную часть Grub2, включая код для обработки меню и загрузки образа ядра. /boot/grub
— это обычный каталог в файловой системе, и эта файловая система должна существовать, чтобы можно было установить Grub2.