Не уверен, что делает эта строка кода скрипта

Я новичок в bash-скриптинге и пытаюсь выучить один из скриптов, которые использует моя компания. Я наткнулся на эту строку:

[ ! -f $PKGDIR/$COMMON_OPS_SCRIPT ] && exit $MISSING_COMMONOPS_SCRIPT

следующая строка:

. $PKGDIR/$COMMON_OPS_SCRIPT

Первая строка сбивает меня с толку, потому что похоже, что она должна быть частью оператора if, но это не ' т. Вторая строка - это то же самое, что в скобках на первой строке, перед которой стоит точка. Может кто-нибудь объяснить, пожалуйста, что здесь происходит?

Кроме того, я пытался изучить скрипты bash здесь:

https://ryanstutorials.net/bash -scripting-tutorial /

У кого-нибудь есть лучший учебник, который я мог бы проверить?

1
задан 29 August 2017 в 17:17

2 ответа

Вам не нужен if из-за &&, который можно использовать эквивалентно.

[ ] : conditional test
! not
-f FILE : does FILE exist ?
&& : do the following only if the statement before is true (returns 0)
exit : exit the script
. FILE : include FILE

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


Эти 3 эквивалентны:

if [ something ]; then something_else; fi

[ something] && something_else

test something && something_else
0
ответ дан 29 August 2017 в 17:17

проверяет, существует ли файл в $PKGDIR/$COMMON_OPS_SCRIPT, затем отправьте его . $PKGDIR/$COMMON_OPS_SCRIPT на следующую строку, в противном случае выйдите и вернитесь $MISSING_COMMONOPS_SCRIPT

0
ответ дан 29 August 2017 в 17:17

Другие вопросы по тегам:

Похожие вопросы: