Ну, вы читаете это слева направо:
if [ ! -f $R_C_S_L/j_r_d* ]
Я думаю, if
и [
понятно?
man [
возвращает man test
вверх, и там мы читаем:
NAME
test - check file types and compare values
SYNOPSIS
test EXPRESSION
test
[ EXPRESSION ]
[ ]
[ OPTION
и далее вниз:
-f FILE
FILE exists and is a regular file
какой файл?
$R_C_S_L/j_r_d*
анализируется слева, где $ указывает, что это переменная.Из написания переменных самостоятельно и склеивания их вместе я знаю, что он будет включать только L, поэтому $ R_C_S_L - это переменная, затем / - разделитель каталога, а j_r_d * - часть имени с шаблоном смещения.
Итак, ищется каталог, на который ссылается $ R_C_S_L, с файлом, соответствующим j_r_d *, это тест, и!является отрицанием, поэтому, если проверка не пройдена, внутренняя часть завершена.
echo 0 > $R_C_S_L/j_r_d
записывает 0 в самый короткий файл, соответствующий указанному выше шаблону, если такого файла не существует.