purebasic.info

PureBasic forum
Текущее время: Ср янв 24, 2018 2:52 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: RunProgram Bash
СообщениеДобавлено: Чт июл 31, 2014 9:50 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб окт 09, 2010 2:21 am
Сообщений: 326
Откуда: Киев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Собственно как запустить команду
Код:
1
bash -c -i "echo 'Hello'"


и получить её результат.
Код:
1
Hello


Пробовал так. Но увы даже до ProgramRunning не дошло
Код:
1
2
3
4
5
6
7
Param$="bash -c -i"+#DQUOTE$+"echo 'Hello'"+#DQUOTE$
Compiler=RunProgram("gnome-terminal",Param$,GetPathPart(ProgramFilename()),#PB_Program_Connect|#PB_Program_Open|#PB_Program_Read)
While ProgramRunning(Compiler)
  If AvailableProgramOutput(Compiler)
    Debug ReadProgramString(Compiler)
  EndIf
Wend


_________________
Win7 Enterprise x86 (PB 5.11)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: RunProgram Bash
СообщениеДобавлено: Чт июл 31, 2014 10:02 pm 
Не в сети
профессор

Зарегистрирован: Пн янв 03, 2011 4:27 pm
Сообщений: 400
Благодарил (а): 5 раз.
Поблагодарили: 17 раз.
Пункты репутации: 0
Lunatic, не правильно указал путь в "gnome-terminal" и параметры Param$="bash -c -i"+#DQUOTE$+"echo 'Hello'"+#DQUOTE$, так попробуй:
Код:
1
2
Param$="-c -i"+#DQUOTE$+"echo 'Hello'"+#DQUOTE$
Compiler=RunProgram("путь к файлу\bash",Param$,GetPathPart(ProgramFilename()),#PB_Program_Connect|#PB_Program_Open|#PB_Program_Read)



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: RunProgram Bash
СообщениеДобавлено: Чт июл 31, 2014 10:13 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб окт 09, 2010 2:21 am
Сообщений: 326
Откуда: Киев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
И так пробовал( Не заходит в AvailableProgramOutput
Код:
1
2
3
4
5
6
7
8
9
10
11
Param$="-c -i"+#DQUOTE$+"echo 'Hello'"+#DQUOTE$
Compiler=RunProgram("/bin/bash",Param$,GetPathPart(ProgramFilename()),#PB_Program_Connect|#PB_Program_Open|#PB_Program_Read)
Debug Compiler
While ProgramRunning(Compiler)
  Debug "Run"
  If AvailableProgramOutput(Compiler)
    Debug ReadProgramString(Compiler)
  EndIf
Wend
Debug "End"
 


_________________
Win7 Enterprise x86 (PB 5.11)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: RunProgram Bash
СообщениеДобавлено: Чт июл 31, 2014 10:47 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб окт 09, 2010 2:21 am
Сообщений: 326
Откуда: Киев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
Param$="-c "+#DQUOTE$+"echo 'Hello'"+#DQUOTE$+" >/dev/tcp/127.0.0.1/6832"
Debug Param$
Compiler=RunProgram("/bin/bash",Param$,GetPathPart(ProgramFilename()),#PB_Program_Connect|#PB_Program_Open|#PB_Program_Read)
Debug Compiler
Debug ProgramID (Compiler)
While ProgramRunning(Compiler)
  Debug "Run"
  Delay(100)
  If AvailableProgramOutput(Compiler)
    Debug ReadProgramString(Compiler)
  EndIf
Wend
Debug "End"



Пробовал даже такое. Хотя из терминала проходит
Код:
1
/bin/bash -c "echo 'Hello'" >/dev/tcp/127.0.0.1/6832


_________________
Win7 Enterprise x86 (PB 5.11)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: RunProgram Bash
СообщениеДобавлено: Чт июл 31, 2014 10:49 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб окт 09, 2010 2:21 am
Сообщений: 326
Откуда: Киев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Не знаю что произошло, но заработало :shock:

Код:
1
2
3
4
5
6
7
Param$="-c "+#DQUOTE$+"echo 'Hello'"+#DQUOTE$
Compiler=RunProgram("/bin/bash",Param$,GetPathPart(ProgramFilename()),#PB_Program_Connect|#PB_Program_Open|#PB_Program_Read)
While ProgramRunning(Compiler)
  If AvailableProgramOutput(Compiler)
    MessageRequester("", ReadProgramString(Compiler))
  EndIf
Wend


_________________
Win7 Enterprise x86 (PB 5.11)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: RunProgram Bash
СообщениеДобавлено: Ср окт 29, 2014 3:42 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт фев 26, 2009 1:53 am
Сообщений: 1154
Откуда: Беларусь, Витебск
Благодарил (а): 22 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Работаю под виндой, но проблема аналогичная.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
OpenWindow(0,0,0,0,0,"", #PB_Window_Invisible)
 
send.s = "--vanilla E:\work\PRMServier\TestingRRun.r test asdf asdf 10 d.asdf"
 
;Result = RunProgram("Rscript.exe", send, "E:\articles\R\R-3.1.1\bin\" , #PB_Program_Wait)
Result = RunProgram("Rscript.exe", send, "E:\articles\R\R-3.1.1\bin\" , #PB_Program_Connect|#PB_Program_Open|#PB_Program_Read)
Debug Result
While ProgramRunning(Result)
  If AvailableProgramOutput(Result)
    MessageRequester("", ReadProgramString(Result))
  EndIf
Wend



Нужно получить ответ из консоли, но при выставлении флагов #PB_Program_Connect|#PB_Program_Open|#PB_Program_Read RunProgram возвращает 0. ЧЯДНТ?

_________________
Ubuntu 10.10, PureBasic 4.61 x86
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: RunProgram Bash
СообщениеДобавлено: Ср окт 29, 2014 5:47 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 80 раз.
Пункты репутации: 24
Попробуй убрать #PB_Program_Connect

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: RunProgram Bash
СообщениеДобавлено: Ср окт 29, 2014 6:11 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт фев 26, 2009 1:53 am
Сообщений: 1154
Откуда: Беларусь, Витебск
Благодарил (а): 22 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Без разницы. При попытке прочесть вывод из сторонней программы запуск не происходит...

_________________
Ubuntu 10.10, PureBasic 4.61 x86
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: RunProgram Bash
СообщениеДобавлено: Пт авг 05, 2016 12:30 pm 
Не в сети
ассистент
Аватар пользователя

Зарегистрирован: Вт июн 03, 2014 10:50 am
Сообщений: 14
Откуда: Україна, Киев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
SSH Tunneling Made Easy(Silent)

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Structure ThreadStructure
  *Memory
  Thread.i
EndStructure
 
Global NewList Threads.ThreadStructure()
 
Procedure RunScript(*Point)
  Protected Code.s = PeekS(*Point)
  Param$ = "-c " + #DQUOTE$ + Code + #DQUOTE$
  Compiler = RunProgram("/bin/bash", Param$, GetPathPart(ProgramFilename()), #PB_Program_Connect|#PB_Program_Open|#PB_Program_Write|#PB_Program_Read)
  While ProgramRunning(Compiler)
    Delay(1000)
  Wend
EndProcedure
 
Procedure RunScriptInThread(Code.s)
  AddElement(Threads())
  Threads()\Memory = AllocateMemory(StringByteLength(Code) + 2)
  PokeS(Threads()\Memory, Code)
  Threads()\Thread = CreateThread(@RunScript(), Threads()\Memory)
EndProcedure
 
RunScriptInThread("sshpass -p 'MyPassword' ssh -L 5000:50.60.70.80:3306 root@10.20.30.40")
RunScriptInThread("sshpass -p 'MyPassword' ssh -L 6000:50.60.70.80:27000 root@10.20.30.40")
 
ForEach Threads()
  WaitThread(Threads()\Thread)
  FreeMemory(Threads()\Memory)
Next


_________________
Linux Mint 18 Purebasic 5.50(x64)


Последний раз редактировалось Усенко Роман Пн авг 08, 2016 4:23 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: RunProgram Bash
СообщениеДобавлено: Пт авг 05, 2016 3:22 pm 
Не в сети
профессор

Зарегистрирован: Чт сен 22, 2011 6:21 pm
Сообщений: 216
Благодарил (а): 30 раз.
Поблагодарили: 21 раз.
Пункты репутации: 0
Angelian
Не все программы работают таким образом (де-то тут тема была)

зы. рабочий пример под вин:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Prg = RunProgram("cmd","/C ping 127.0.0.1","",#PB_Program_Open|#PB_Program_Read|#PB_Program_Error)
 
While ProgramRunning(Prg)
 
  If AvailableProgramOutput(Prg)
    s$ = ReadProgramString(Prg,#PB_Ascii)
    OemToChar_(@s$,@s$)
    Debug "Prg String: " + s$
  EndIf
 
  s$ = ReadProgramError(Prg,#PB_Ascii)
  If s$ <> ""
    OemToChar_(@s$,@s$)
    Debug"Prg Error: " + s$
  EndIf
 
  Delay(1)
Wend
 



Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB