2016-05-27 1 views
2

я наткнулся на эту строку кода:Баш - смысл «(DoSomething) ||:»

(cd ${TRASH_DIR} && rmdir 20* 2> /dev/null) || : 

Первое выражение для меня ясно, но то, что есть смысл «еще-части» : just ":"? В большинстве случаев я вижу «|| exit 1», что также ясно для меня.

PS: К сожалению, я, кажется, не быть в состоянии Google этот символ-сочетание без намека, что это значит ...

+2

Вы можете использовать [symbolhound] (http://symbolhound.com/) –

+0

':' '' '' команда, которая всегда возвращает только true (0), это означает, что команда выйдет из истины, даже если она терпит неудачу. – 123

+0

@thomas ayoub: Большое спасибо за символа! Получил это сейчас :) – evilive

ответ

3

Определение смысла символ «:» оболочки можно найти here. Это фрагмент, который вам нужно найти; на этой длинной странице трудно найти:

: null команда [двоеточие]. Это эквивалент оболочки «NOP» (без операции op, do-nothing). Его можно считать синонимом для оболочки, встроенной в true. Команда «:» сама по себе является встроенной Bash, а ее статус выхода равен true (0).

В строке кода, которую вы рассматриваете в своем вопросе, используется только для обеспечения окончательного кода выхода 0 выражения, независимо от условий, проверенных там.

+0

Thank You: Found Теперь с символом здесь и в stackoverflow: в этом случае он был в последней строке скрипта для выхода из удачного, даже если в первом выражении были подавлены ошибки в – evilive

+1

@evilive. В этом Если бы вы могли просто положить 'exit 0' в конец, что, очевидно, намного яснее, поскольку этот вопрос не существовал бы, если бы последний сделал это! – 123

+1

@ 123 Спасибо! Просто сделал это еще до чтения этого;) – evilive

Смежные вопросы