2012-02-04 4 views
1

Я смущен этой ошибкой. Я пишу сценарий lua для mocp для отображения информации в conky. Когда я воспроизвожу музыкальные файлы в «/ media/Stuff/old-music», все работает отлично, но я получаю сообщение об ошибке при воспроизведении музыкальных файлов в «/ home/tony/Music». Ни один из каталогов не жестко закодирован в моем скрипте. Ошибка говорит, что переменная возвращается как nil. Я проверяю, и музыкальный файл имеет необходимую информацию. Почему я получаю эту ошибку?Переменная return as nil

ошибка ..

Conky: llua_do_call: функция выполнения conky_main не удалось: /home/tony/.conky/lua-test/albumart.lua:68: попытка объединить глобальный 'альбом' (нилъ значение)

код ...

.... 
totaltime,totaltimesecs,song,artist,album,albumart=newsong(update_num) 
.... 
function newsong() 
    local f = io.popen("mocp -Q %album") 
    album= f:read("*a") 
    f:close() 
    album=string.gsub(album,"[\n]","") 
    local f = io.popen("mocp -Q %artist") 
    artist= f:read("*a") 
    f:close() 
    artist=string.gsub(artist,"[\n]","") 
    local f = io.popen("mocp -Q %song") 
    song= f:read("*a") 
    f:close() 
    song=string.gsub(song,"[\n]","") 
    local f = io.popen("mocp -Q %tt") 
    totaltime= f:read("*a") 
    f:close() 
    totaltime=string.gsub(totaltime,"[\n]","") 
    local f = io.popen("mocp -Q %ts") 
    totaltimesecs= f:read("*a") 
    f:close() 
    totaltime=string.gsub(totaltime,"[\n]","") 
return totaltime,totaltimesecs,song,artist,album,albumart 

ответ

1

код, который вы написали, кажется, не связан с фактическим кодом ошибки. Код ошибки конкретно описывает эту проблему:

.../albumart.lua:68: attempt to concatenate global 'album' (a nil value) 

Это означает, что вы пытаетесь сцепить album переменной с помощью оператора конкатенации .., и это значение бывает равной нулю.

Код, который вы написали, предполагает, что этого не должно быть (даже если вы можете попробовать сделать все переменные в функции local). Пожалуйста, взгляните на строку 68 в своем файле, чтобы найти проблему.

+0

Но почему это нормально работает с одним каталогом, а не с другим? –

+0

Что возвращает 'mocp -Q% album' в каталог« не работает »? –

+0

Друг понял это для меня. У меня было слишком много возвратов в остальной части кода. Ошибка новичков. :/ Спасибо за помощь. –