9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

luaでlinuxのコマンドを実行する

Posted at

luaで外部コマンドの実行結果を取得する方法です。popenを使うとコマンドの結果がとれるようです。
文字列をテーブルに変換する処理がなかったので、splitを書いてみました。

sample.lua
function split(str, delim)                                                                                                                                    
        assert(str,  "文字列が設定されていません")
        assert(delim,"区切り文字がしていされていません")
        local pattern = "[^"..delim.."]*"..delim
 
        local result = {}
        for item in string.gmatch(str, pattern) do
                local tmp = item:gsub(delim,"")
                table.insert(result, tmp)
        end 
        return result
end
 
function getPid(name)
        local command='pidof '..name
        local commandResult = execCommand(command)
        local result = string.gsub(commandResult, "\n", "") 
        return  result
end
 
function getDirList(dirname)
        local command='find '..dirname..' -type d'
        local commandResult = execCommand(command)
        local result = string.gsub(commandResult, "\n", ",")
        return split(result, ",")
end
 
function execCommand(command)
        local handle = io.popen(command,"r")
        local content = handle:read("*all")
        handle:close()
        return content
end
9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?