LINUX.ORG.RU

Ищется команда


0

0

такого толка:

   $ command -option "some text" -output file

и чтобы появился файл с "some text"

Предлагать:

   $ echo test > file
   $ bash -c "echo test > file"
   $ echo 123 | cat file

не надо - shell работает криво, они не выполняются.
anonymous

Я так понял что ">" не работает. А "|" работает?

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

tee - read from standard input and write to standard output and files

Забудьте про перенаправления :-) Не работают они ни в каком виде

(java, мать её)

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

Т.е. java через попу обращается к shell'y.

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

> Из Java не выполняется.

А просто создавать в самом программном коде файл и в него писать то, что нужно, не подходит?

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

/* command.c */
#include <stdio.h>

int main(int argc, char **argv) {
  if (argc < 3) {
    printf("Usage: %s <text> <filename>\n", argv[0]);
    return -1;
  }
  FILE *f = fopen(argv[2], "w");
  fputs(argv[1], f);
  fclose(f);
  return 0;
}

$ gcc command.c -o command
$ ./command
Usage: ./command <text> <filename>
$ ./command "some text" file
$ cat file
some file$

Свистки, гудки, обработку командной строки и прочую защиту от дурака добавить по вкусу.

Хотя как по мне, задача сродни анальной тонзиллэктомии...

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

В Java даже создать файл геморрой :-)

Короче, C'юльник на 20 строк пришлось накатать :-)

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

Я тоже самое уже сделал ... с защитой от дурака и с защитой от записи в /etc и пр. :-)

мда

anonymous
()

>Предлагать:

 >  $ echo test > file
 >  $ bash -c "echo test > file"
 >  $ echo 123 | cat file

>не надо - shell работает криво, они не выполняются.

o0 
фига себе заява! а можно конкретней о кривизне шела?? 
насколько криво работает эта команда???
$ echo test > file

может вас смущает перенос строки в конце??
тогда
echo -n "some text" > file

Поясните про кривизну. 

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

Вы тупой или прочитать всё не осилили?

Java криво понимает исполнение shell изысков - таких как перенаправление и пр.

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

bash -c "echo test > file" с одинарными кавычками (т.е. bash -c 'echo test > file') тоже криво проходит?

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

> Вы тупой или прочитать всё не осилили?

Нет, это Вы не осилили полностью и правильно сформулировать вопрос.

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

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

:-)

Мальчик, я с Линуксом с 1998 года. Идите спать.

З.Ы. экранировать вызов bash тоже не получилось

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

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

> Мальчик, я с Линуксом с 1998 года.

Значит вы ещё и умственно неполноценны, раз за десять лет не освоили.

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

> Java криво понимает исполнение shell изысков - таких как перенаправление и пр.

И все таки, хотелось бы подробностев. Ибо при таком количестве Ъ-Ынтерпрайз джаверов на форуме, начиная с iZen, и заканчивая svu, постановка задачи выглядит несколько провокативно. Может, пригодится в соседнем флейме C vs Java...

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

может, это?

Runtime.getRuntime().exec(new String[] {"/bin/bash", "-c", "echo Hello >/tmp/file1.tmp"});

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