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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.