Используя удар, набор HISTCONTROL="ignorespace"
и предшествуйте с пространством любой команде, Вы не хотите быть зарегистрированными в истории. В случае, если Вы забыли принимать любые меры, существует также history -d <number>
для удаления определенной записи или history -c
для очистки всей истории команд.
==
a bash
- определенный псевдоним для =
, который выполняет строку (лексическое) сравнение вместо -eq
числовое сравнение. (Это назад от Perl: операторы стиля слова являются числовыми, символьные лексические.)
Если Вы захотите сделать целочисленное сравнение, то Вы будете лучше использовать (()), где можно также использовать> = и т.д.
Пример:
if (( $UID == 0 )); then
echo "You are root"
else
echo "You are not root"
fi
(( UID == 0 ))
или (( ! UID ))
для этого вопросы. Отметьте это ((...))
нестандартно (a ksh
функция, также поддерживавшая bash
и zsh
с изменениями).
– Stéphane Chazelas
15.06.2015, 14:09
Чтобы уточнить ответ bollovan ...
Не существует оператора сравнения > =
или <=
для строк. Но вы можете использовать их с арифметической командой ((...))
для сравнения целых чисел.
Вы также можете использовать другие операторы сравнения строк ( ==
, ! =
, <
, >
, но не =
) для сравнения целых чисел, если вы используете их внутри ((...))
.
Примеры
[[01 -eq 1]]
, и ((01 == 1))
выполняют целочисленные сравнения. Оба верны. [[01 == 1]]
и [01 = 1]
выполняют сравнение строк. Оба они ложны. ((01 -eq 1))
, и ((01 = 1))
вернут ошибку. Примечание: синтаксис двойных скобок [[...]]
и синтаксис двойных скобок ((...))
поддерживаются не всеми оболочками.
-eq
говоритbash
интерпретировать строки как целые числа (создание0
без предупреждения, если строка не является числовой). – geekosaur 05.07.2011, 20:34[ 01 -eq 1 ]
но[ 01 != 1 ]
. – Gilles 'SO- stop being evil' 05.07.2011, 23:54==
как a[
оператор нестандартен и не должен использоваться, это не определенное для удара. Это было представлено ksh и также поддерживается zsh (хотя первое=
потребности, которые будут заключены в кавычки), yash и GNU[
утилита (и любые такие утилиты, реализованные как ksh сценарии в некоторых системах), по крайней мере). Разрешение – Stéphane Chazelas 15.06.2015, 13:52$ if [ "hello" -eq 0 ]; then echo true; fi
удар: [:здравствуйте: целое выражение ожидало – Andrew Bainbridge 25.08.2016, 12:23