1

Всем привет,
подскажите пожалуйста по такому вопросу:

Использую такую серию команд в скрипте:

curl $(sed -n -e "$string"p $1) > storage"$string"
sleep 5
kill -9 $!

1) Команда curl выполняется, но мне надо чтобы её процесс выполнение никак не отображался в терминале (эта информация не нужная).
2) Так же и kill -9, если завершается ошибкой, то не должен ничего выводить.

Запуск curl в background'e не вариант, т.к. там виден процесс скачивания.

2

KraT_by пишет:

1) Команда curl выполняется, но мне надо чтобы её процесс выполнение никак не отображался в терминале (эта информация не нужная).

Так вы же её вывод в файл перенаправляете, покажите, что она при этом в консоль выводит.

KraT_by пишет:

2) Так же и kill -9, если завершается ошибкой, то не должен ничего выводить.

kill -9 $! 2>/dev/null

или так

kill -9 $! >/dev/null 2>&1
Был, был и весь вышел...

3

Вместо

kill -9 $! >/dev/null 2>&1

лучше так

kill -9 $! &>/dev/null

4

Vascom пишет:

лучше так

kill -9 $! &>/dev/null
KraT_by пишет:

2) Так же и kill -9, если завершается ошибкой, то не должен ничего выводить.

Тогда выведутся ошибки.

Был, был и весь вышел...

5

Да не должны выводиться ошибки:

&>filename
      # Перенаправление stdout и stderr в файл "filename".

http://www.opennet.ru/docs/RUS/bash_scr … 11620.html

6 (24.01.2013 09:46:32 отредактировано Lupo Alberto)

Vascom пишет:

Да не должны выводиться ошибки:

Точно, проверил, не выводятся.
Хотя, если вывод команды (кроме ошибок) всё же нужен, то...

Lupo Alberto пишет:

kill -9 $! 2>/dev/null

Был, был и весь вышел...

7 (24.01.2013 10:55:44 отредактировано KraT_by)

О, огромное спасибо за kill -9, забыл что-то про stdin/stdout. А, и $! не подходит, т.к. мало ли кто-то запустит другой процесс после запуска моего.

Вот что вывоид curl

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    34    0    34    0     0    969      0 --:--:-- --:--:-- --:--:--  1888

8

KraT_by пишет:

Вот что вывоид curl

Покажите полностью от ввода команды до вывода в консоль.

Был, был и весь вышел...

9

andrei-naurotski@andreinaurotski-desktop:~$ curl $(sed -n -e 4p ./url) > storage4
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  973k    0  973k    0     0   141k      0 --:--:--  6:00:04 --:--:--  133k

10 (24.01.2013 11:17:26 отредактировано Lupo Alberto)

Попробуйте так

curl $(sed -n -e 4p ./url) > storage4 >/dev/null 2>&1

или так

curl $(sed -n -e 4p ./url) -o storage4 >/dev/null 2>&1

или так

curl $(sed -n -e 4p ./url) -s -o storage4
Был, был и весь вышел...

11

curl $(sed -n -e 4p ./url) > storage4 >/dev/null 2>&1

ничего не сохраняет в файл storage4

curl $(sed -n -e 4p ./url) -o storage4 >/dev/null 2>&1

вот это хорошо, но если файл storage4 уже создан, то оно не будет в него записывать

curl $(sed -n -e 4p ./url) -s -o storage4

выводит выполнение в терминал

печаль то какая ac

12

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

У команды curl есть опция -s, quiet mode.

13

KraT_by пишет:

У команды curl есть опция -s, quiet mode.

Lupo Alberto пишет:

curl $(sed -n -e 4p ./url) -s -o storage4

Был, был и весь вышел...

14

упс))) просто -o не делает то, что надо, в общем результат такой:

curl -s $(sed -n -e "$string"p $1) > storage"$string" &

Спасибо за помощь