crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> shell, как получить выводимые строки и выполнить их
ViGOur
  опции профиля:
сообщение 10.9.2012, 17:04
Сообщение #1


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Есть файл на python допустим такого содержания:
#!/usr/bin/python

print 'echo "Hello world"'
print 'ls -la'
В результате работы он выводит соответственно строки:
echo "Hello world"
ls -la
Как в SHELL мне получить данные строки и выполнить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.9.2012, 17:09
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


м-м-может как-то перенаправлять поток?

типа:
shell script.py < 1

бр-бр-бр
забыл как использовать поток ввода (!) и как зовут командный интерпретатор в *nix
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 10.9.2012, 17:13
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


да нее, там проблема у меня в том, что при вызове из шелл например так:
#!/bin/sh

py=`./run.py`
echo $py
выводится:
Цитата
echo "Hello world" ls -la

:(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 10.9.2012, 17:42
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Цитата(ViGOur @ 10.9.2012, 18:04) *
Есть файл на python допустим такого содержания:
#!/usr/bin/python

print 'echo "Hello world"'
print 'ls -la'
В результате работы он выводит соответственно строки:
echo "Hello world"
ls -la
Как в SHELL мне получить данные строки и выполнить?


#!/bin/sh

eval "`./script.py`".


Но это не безопасно, выполнять команды из чужого скрипта.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iReset
  опции профиля:
сообщение 10.9.2012, 17:53
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 178
Регистрация: 6.6.2012
Пользователь №: 3414

Спасибо сказали: 23 раз(а)




Репутация:   2  


Цитата(ViGOur @ 10.9.2012, 18:13) *
да нее, там проблема у меня в том, что при вызове из шелл например так:
#!/bin/sh

py=`./run.py`
echo $py
выводится:
Цитата
echo "Hello world" ls -la


А ты попробуй заключить в кавычки
py="`./run.py`"
echo "$py"

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 10.9.2012, 19:05
Сообщение #6


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Sokoloff @ 10.9.2012, 18:42) *
Но это не безопасно, выполнять команды из чужого скрипта.
Верно.
Цитата(iReset @ 10.9.2012, 18:53) *
А ты попробуй заключить в кавычки
Пробовал, результат тот же.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 10.9.2012, 19:39
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Цитата(ViGOur @ 10.9.2012, 20:05) *
Цитата(iReset @ 10.9.2012, 18:53) *
А ты попробуй заключить в кавычки
Пробовал, результат тот же.


Что то я не догоняю, тебе что надо? Запустить их, или напечатать?
lines=`./script.py`
echo -e "$lines"

или
                                                                                                            
lines=`./script.py`
printf "%s" "$lines"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 10.9.2012, 19:47
Сообщение #8


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Sokoloff @ 10.9.2012, 20:39) *
Что то я не догоняю, тебе что надо? Запустить их, или напечатать?
И то и другое.
iReset, Sokoloff, невнимателен был, не там кавычки ставил, решение iReset работает и в самый раз... :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 22:46