LinuxForum.Fans
Тема

[Решено] Как скрыть выполнение команды

Автор: KraT_by 14 сообщений 2828 просмотров
#298079

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

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

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

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

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

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

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

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

kill -9 $! 2>/dev/null

или так

text

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

Вместо

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

лучше так

text
kill -9 $! &>/dev/null
#298143
"Vascom" написал:
лучше так
text
kill -9 $! &>/dev/null

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

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

#298146
"Vascom" написал:
Да не должны выводиться ошибки:

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

"Lupo Alberto" написал:
kill -9 $! 2>/dev/null
#298161

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

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

text

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    34    0    34    0     0    969      0 --:--:-- --:--:-- --:--:--  1888
#298164
"KraT_by" написал:
Вот что вывоид curl

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

#298167
text
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
#298168

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

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

или так

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

или так

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

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

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

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

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

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

печаль то какая :(

#298188

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

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

#298191
"KraT_by" написал:
У команды curl есть опция -s, quiet mode.
"Lupo Alberto" написал:
curl $(sed -n -e 4p ./url) -s -o storage4
#298193

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

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

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

Войдите или зарегистрируйтесь, чтобы ответить.