2016-09-22 1 views
0

У меня есть сценарий «proc backup». У меня к каждой директории много слов разрешено или не разрешено. Я думал, что интегрирован с массивом. но я не продвигаюсь ...разрешенный массив не разрешен

или есть что-то более простое?

bind pubm - "*fertig*" backup 

proc backup {nick host handle channel text} { 
    set name[lindex [split [stripcodes bcru $text]] 2] 
    set dir[lindex [split [stripcodes bcru $text]] 4] 

    if {[catch {exec sh backup.sh $dir $name} error]} { 
     putlog $error 
    } 

    putnow "PRIVMSG $channel :backup $name done"; 
} 

array set allowed { 
    "dir1"   "to rar" 
    "dir2"   "backupserver1 " 
    "dir3"   "2016 2017" 
} 

array set not_allowed { 
    "dir1"   "test crap" 
    "dir2"   "old backupserver2 jpg zip" 
    "dir3"   "2015 2014 2013 2012 2011 2010 209 19" 
} 

редактировать:

линия от ИРЦ: (LINDEX 2 и 4)

запустить backup.sh только тогда, когда это слово в названии является

word0 word1 backupserver1 word3 dir2

не запускается резервное копирование при другом слове

word0 word1 bac kupserver55 word3 dir2

не работает backup.sh

тест word0 word1 word3 dir1 word0 word1 дерьмо word3 dir1

запустить backup.sh только тогда, когда это слово в названии является

word0 Слово1 черный word3 dir1

Выполняется только тогда, когда слово из набора разрешено в $ name. Не запускается, когда слово из not_allowed в $ name есть.

+0

Пожалуйста, напишите еще что вы ожидаете, а что нет. Прямо сейчас, я не понимаю, какова значимость массивов 'allowed' и' not_allowed'. –

+0

пример: когда в каталоге dir1 ($ dir) текст включает ($ name) "to" или "rar" (из разрешенного набора массивов), тогда make, если {[catch {exec sh backup.sh ...., и когда в dir1 ($ dir) текст включает в себя ($ name) «test» или «crap» (из набора массивов not_allowed), затем останавливается (retourn 0), я надеюсь, что это будет лучше. привет –

ответ

0

Следующие две строки не содержат пробела между именем переменной и значением.

set name[lindex [split [stripcodes bcru $text]] 2] 
set dir[lindex [split [stripcodes bcru $text]] 4] 

Попробуйте это:

set name [lindex [split [stripcodes bcru $text]] 2] 
set dir [lindex [split [stripcodes bcru $text]] 4] 
+0

да thx, его от копирования удалено .. но это не проблема :) –

0

Я теперь сделать это, чтобы проверить, когда у меня есть одно слово, а затем рабочий Perfekt,

"dir1"   "rar" 

когда есть 2 слова

"dir1"   "rar to" 

не работает.

Я хотел бы ответить, если слово «RAR» или слово «в» в тексте от $ relname является

bind pubm - "*fertig*" trade 

proc backup {nick host handle channel text} { 

set name [lindex [split [stripcodes bcru $text]] 2] 
set dir [lindex [split [stripcodes bcru $text]] 4] 

set rulesall [rulesallow $dir $release] 

putnow "PRIVMSG $channel :rulesall $rulesall" 
} 


array set allowed { 
"dir1"   "rar" 

} 


proc rulesallow { cat relname} { 
global allowed 
foreach {category allowede} [array get allowed] { 
    if { [string match -nocase "*$allowede*" "$relname"] } { 
    return $allowede; 
    } else { 

    } 
} 
} 

, чтобы проверить есть команда ш удалена.

С уважением