Получил! Настройки клавиатуры> Макеты> Параметры ...> Использование клавиши пробела для ввода символа неизолированного пробела> Неразрывное пространство на третьем уровне, тонкое неразрывное пространство на четвертом уровне.
(Четвертый уровень называемый так же, как третий плюс Shift. Чтобы установить переключатель 3-го уровня, перейдите в Настройки клавиатуры> Макеты> Параметры ...> Ключ, чтобы выбрать 3-й уровень.)
У вас есть несколько ошибок sytax, как уже указывалось. Вы также, кажется, используете ошибочную логику. Статус выхода 0 означает, что команда выполнена успешно, а не сбой. Если вы хотите напечатать failed, если ваш файл не соответствует строке запроса, все, что вам нужно, это:
grep -q "::=BEGIN" /home/erawson/bin/HP/adaptec.mib || echo "failed"
Если вы хотите напечатать failed, если файл не строка, используйте это:
grep -q "::=BEGIN" /home/erawson/bin/HP/adaptec.mib && echo "failed"
Нет необходимости сохранять статус выхода и не нужно проверять if / else.
Как я понимаю, ваше требование состоит в том, что если вы получите вывод для строки grepping «:: = BEGIN», вы хотите эхо «сбой» .. правильно? И я не уверен, почему вы использовали «;» после if ... снова используется «then»
, вы можете попробовать следующее
if [ -n `grep -q "::=BEGIN" /home/erawson/bin/HP/adaptec.mib` ]
then
echo "failed"
else
exit
fi
Надеюсь, это поможет! (согласно моим предположениям)
Вам просто нужна дополнительная пара круглых скобок:
grep -q "::=BEGIN" </home/erawson/bin/HP/adaptec.mib
if (("$?" = "0")); then
echo "failed"
else
exit
fi
Правильный арифметический синтаксис оператора (( Также, поскольку вы просто используете код выхода $?, нет необходимости сохранять это в другой переменной, вы можете использовать ее напрямую. Это может быть дополнительно упрощено как:
if grep -q "::=BEGIN" </home/erawson/bin/HP/adaptec.mib; then
echo "failed"
else
exit
fi