LINUX.ORG.RU

вывод результата в командную строку


0

0

надо чтоб после того как скрипт отработал, он вывел результат в командную строку. те типа

$./scripts.sh
working
$perl blablabla.pl | sort

perl blablabla.pl | sort - это результат работы скрипта, чтоб запустить это - достаточно нажать Enter. надо именно так, запускать сразу сформированную командную строку нельзя. можно такое сделать или нет? если да, то как?


Ответ на: комментарий от LokiAs2

нет, мне результат надо не в файл (>result.txt), и не на экран (stdout), а в командную строку, я запустил скрипт, а по окончанию его работы в командной строке появляется определенный текст. не напечатанный, а именно в командной строке.

CFA
() автор топика

Влинуксе есть консоль, командная строка в оффтопиге!

anonymous
()

Наверное, нет, т.к. скрипт отрабатывает в child-шелле

anonymous
()
Ответ на: комментарий от sergej

ну или точнее

cmd = `./script.sh`

echo "$cmd"

echo -n Y/n?

read A

[ "x$A" == "xY" ] && $cmd

sergej ★★★★★
()

Не совсем уверен что правильно понял, что ты хочеш, но например echo "ls -l" | xargs -0 bash -c выполнит просто ls -l, тоесть xarg -0 bash -c будет выполнять то что ей передадут на стандартный ввод (например результат выполнения команды).

slackophile
()
Ответ на: комментарий от slackophile

>Ты хочешь странного.

ага, знаю

>а что мешает сделать `./script.sh` | sort ?

нельзя так, нельзя

ничего не надо выполнять сразу, и выбор ответа y/n тоже не подходит. надо чтоб результат работы скрипта попал командную строку, как будто был набран с клавиатуры, но enter не нажат

CFA
() автор топика
Ответ на: комментарий от CFA

Запустить шелл в емаксовском буффере (как-то там можно, AFAIR) и нарисовать макрос с копипейстом.

DonkeyHot ★★★★★
()
Ответ на: комментарий от CFA

Можешь глянуть сюда: http://www.cs.duke.edu/~des/vip.html

Не в командную строку, но подредактировать или отменить команду до выполнения можно.

Универсального метода изменять командную строку, появляющуюся _после_ работы твоей программы, во-первых, нет, а во-вторых это очень сильно неправильно, и когда я такую программу увижу, я при первой возможности оторву разработчику яйца, чтоб не размножался.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от CFA

Ещё у некоторых шелов есть программируемый "completion" - тоже можно получить нечто похожее.

Очевидный способ - написать прокладку между терминалом и шелом, заворачивающую некоторые выводимые шелом строки обратно ему на вход.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

> написать прокладку между терминалом и шелом, заворачивающую некоторые выводимые шелом строки обратно ему на вход.

Яйца отрывать. А если программа была запущена в bg и в момент ее завершения в fg совсем другая программа нежели shell? Догадайся, куда попадет тот хлам?

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от CFA

Ужас. Человек сам понимает, что есть нормальные пути решения проблемы, но упорно хочет сделать через задницу. Бывает же.

Чем тебе y/n-то не подходит? Вообще, почему все эти "нельзя"? Объясни реальную ситуацию, из-за которой тебе якобы надо сделать именно так.

Teak ★★★★★
()
Ответ на: комментарий от watashiwa_daredeska

>А Enter на что назначить?

Это подробности. Но вообще _почти_ согласен, эту задачу лучше серпом решать.

DonkeyHot ★★★★★
()

Автор судя по всему делает какую то подлянку, так как в реальной жизни не могу представить себе таких ситуаций... Пусть объяснит что ему надо, придумаем другие варианты. Но ИМХО серп лучше.

Orlangoor ★★★★★
()
Ответ на: комментарий от Orlangoor

никаких подлянок. есть шелл с кучей ограничений. в том числе и на количество процессов от юзера. на нем надо запускать 2 программы работющие через пайап - prog1 | prog2 если их запускать из скрипта, то будет превышен лимит процессов. руками запускать гиморно, так много меняющихся параметров.

CFA
() автор топика
Ответ на: комментарий от CFA

Можно попробовать запускать exec script, а в конце скрипта написать exec $SHELL

Правда о возможности нажать Ctrl+C или Ctrl+Z придётся повидимому забыть (хотя есть какая-то команда trap....)

GPFault ★★
()
Ответ на: комментарий от CFA

>есть шелл с кучей ограничений. в том числе и на количество процессов от юзера. на нем надо запускать 2 программы работющие через пайап - prog1 | prog2 если их запускать из скрипта, то будет превышен лимит процессов.

Непонятно, почему запуск из скрипта превышает лимит процессов, а из шелла - нет.

Там ограничение в 3 процесса, чтоль? Тогда можно сделать "source script.sh", чтобы не порождать лишний шелл.

anonymous
()
Ответ на: комментарий от CFA

Всегда говори, в чём настоящая проблема, блин. А не "как мне решить мою проблему именно вот этим болезненным способом".

Teak ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.