私はコマンドを実行した結果を返す小さな関数を書いています。popen()は結果の最後に改行( n)を追加しますか?
function axsh(cmd)
local fullCmd=cmd:lower()
local f,err=io.popen(fullCmd,"r")
if not f then
return nil,"Could not create the process '"..fullCmd.."' \nError:"..err
end
return f:read("*all")
end
s=axsh("echo hi")
--print all bytes
print(s:byte(1,s:len()))
出力は常に\ nを有する終わりにどんなコマンドではありません。
104 105 10
編集:それは私自身のバイナリコマンドラインアプリケーションのためだけでなく、ほとんどすべてのためだけではなく、たまたまOSコマンド:Windows: "dir"、 "ipconfig"、 "echo" ... Linux: "ls"、 "pwd"、 "ls" ...
しかし、コマンドを別々に実行するとコマンドプロンプト)、改行フィードはありません。私はそれを必要としないので、結果を返す前に最後の文字を削除する必要があります。
質問:この改行は常にpopen()の結果に存在しますか?私はドキュメントでこの動作への参照を見つけることができません。