Пренасочване на входа и изхода от програмите в Linux и Windows


Пренасочването на входа и изхода на конзолните програми е абсолютно наложително в определени случаи. Например подаване на изхода на една команда директно като вход на друга (така нареченият piping), генериране на файлове с изхода за по-нататъшен преглед и други. Всяка програма има три стандартни потока за данни: един за четене на входните данни (STDIN), един за извеждане на резултата (STDOUT) и един за извеждане на грешките (STDERR). Това са няколко примера за постигане на това чрез командните интерпретатори на Linux (bash) и Windows (cmd prompt)

Bash

 
Пренасочване на изведеното от ls директно към grep:
 
ls -al . | grep -v notneeded
 
Четене на данните за grep от file.txt
 
grep word_to_find < file.txt
 
Пренасочване на изхода от gcc към out.txt, а грешките - към err.txt
 
gcc source.c >out.txt 2>err.txt
 
Пренасочване на изхода и грешките към out.txt
 
gcc source.c 2>&1 >out.txt
 
Добавяне на изхода и грешките към out.txt
 
gcc source.c 2>&1 >>out.txt
 
Извеждане на резултатите от find по страници чрез more
 
find / -name myfile* | more

Cmd

Пренасочване на изхода от dir към sort
 
dir /b log.* | sort
 
Четене на входните данни за sort от file.txt
 
sort < file.txt

Пренасочване на изхода от cl.exe към out.txt, а грешките - към err.txt

cl.exe file.c >out.txt 2>err.txt

Добавяне на изхода и грешките към out.txt (обърнете внимание на обратния знак)

cl.exe file.c >>out.txt 2<&1

Извеждане по страници

dir /b c:\my_large_dir | more

Няма коментари

Обратно към списъка със статиите

Тази страница последно е променяна на 2024-04-23 04:16:53