target: $ /bin/dmesg;cat /proc/scsi/scsi
PureBasic 4.0 Linux Beta1
Code: Select all
Procedure.s RunProgramLinux(shell_cmd.s, Separate.s="",timeout=30000)
Protected file, run_status, filename.s, PreBuf.s, run_tmp.b, Buf.s
filename = FormatDate("RunProgramLinux_%yyyy%mm%dd%hh%ii%ss.sh",Date())
file = CreateFile(#PB_Any, filename)
WriteString(file, shell_cmd+";echo "+Chr(34)+filename+Chr(34)) : CloseFile(file)
run_status = RunProgram("/bin/bash", filename,"", #PB_Program_Open|#PB_Program_Read)
If run_status
WaitProgram(run_status,timeout)
Repeat
PreBuf = ReadProgramString(run_status)
If PreBuf=""
ReadProgramData(run_status, @run_tmp, 1)
PreBuf=""
Delay(100)
Else
If Separate=""
Buf + Chr(13) + Chr(10) + PreBuf
Else
Buf + Chr(13) + Chr(10) + Right(PreBuf, Len(PreBuf) - FindString(PreBuf, Separate, 0) )
EndIf
EndIf
Until FindString(PreBuf,filename,0)>0
DeleteFile(filename)
ProcedureReturn ReplaceString(Buf, filename, "")
Else
ProcedureReturn ""
EndIf
EndProcedure
Code: Select all
debug RunProgramLinux("/bin/dmesg;echo "+Chr(34)+Chr(13)+Chr(10)+Chr(34)+";cat /proc/scsi/scsi", "]")