Мене завжди дивує, що в папці /binє [програма.
Це те, що називається, коли ми робимо щось на кшталт if [ something ]:?
Викликаючи [програму явно в оболонці, вона запитує відповідну ], і коли я надаю дужку закриття, вона, здається, нічого не робить, незалежно від того, що я вставляю між дужками.
Потрібно сказати, що звичайний спосіб отримати допомогу щодо програми не працює, тобто не працює і man [не [ --helpпрацює.
man '['для мене добре працює - або ви забули процитувати, [або у вас є інше визначення поняття "твори".
[оцінює його аргументи, тому вам потрібно мати пробіли між усіма ними. [ a=b ]це не порівняння: воно завжди буде істинним (це єдина строка: "a = b", яка завжди оцінюється як істина ). А вам слід обмежити кількість аргументів на 4 (навіть якщо останні реалізації дозволять отримати більше. . Обмеження до 4 робить його більш портативним. Наприклад: [ "a" = "b" ]вже має 4 аргументи: "a" "=" "b" і не потрібний кінець тесту arg: "]"). Якщо вам потрібно більше: ланцюгові тести, наприклад:if [ "$Var_a" = "foo" ] && [ "$Var_b" = "bar" ] ; then : do something ; fi
!сам по собі (без націски та без котирування) не буде замінено, а ще краще буде if ! [ .... Усі розгортання !
[в bash(і, можливо, інших оболонках) також є -буделін , і замість цього він може використовуватися /bin/[. Також є test-команда, яка в багатьох системах є символічним посиланням на /bin/[(або навпаки) - а на інших - окрема команда.
[посилається наtestкоманду, хоча, ніexpr, так і має бутиman test