Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Linux/bash] zapis do pliku z terminala

Ostatnio zmodyfikowano 2016-08-10 22:53
Autor Wiadomość
Anim
Temat założony przez niniejszego użytkownika
[Linux/bash] zapis do pliku z terminala
» 2016-08-10 21:52:03
Cześć.

Mam takie pytanie, czy jeśli mam plik wywoływany w terminalu, to czy mogę zapisać wyniki pojawiające się w oknie terminala do pliku?

Znalazłem możliwość zapisania do pliku przy użyciu symbolu '>'. Czy w takim razie, jak mam wykonywalny plik o nazwie 'program', to czy wystarczy, że zrobię coś takiego:

program > plik.txt

Czy powinienem użyć jakiegoś jeszcze parametru? a może jestem w ogóle w błędzie? Będę wdzięczny za każdą pomoc. Dziękować :)
P-150722
mateczek
» 2016-08-10 22:31:14
przekierujesz w ten sposób wyjście do pliku
w terminalu nic się nie pokarze!!!
Zresztą co za problem przetestować z byle jaką komendą ??

np:

uname -r > wynik.txt
P-150723
Anim
Temat założony przez niniejszego użytkownika
» 2016-08-10 22:41:50
Dziękuję :) Problem z przetestowaniem jest taki, że nie nie mam dostępu do Linuxa w tym momencie, a nad tym problemem się zastanawiam :)

uname -r, powiadasz? a jak zrobić, jeśli mogę jeszcze spytać, aby jednocześnie się zapisywało i wypisywało na ekran? jest jakiś dodatkowy parametr?
P-150724
Gibas11
» 2016-08-10 22:42:19
prog > file
 przekieruje tylko standardowe wyjście a błędy zostaną wypisane w terminalu, by temu zapobiec trzeba użyć
prog &> file
.

C/C++
#include <iostream>

int main()
{
    std::cout << "banan 1" << std::endl;
    std::cerr << "banan 2" << std::endl;
   
    return 0;
}


#! /bin/bash
./main > t1
./main &> t2

//t1

banan 1

//t2

banan 1
banan 2

//edit
uname -r
 to tylko komenda wyświetlająca wersję kernela, przykład. Jeśli chodzi o zapis i wyświetlanie to różnie to można zrobić,
./main 1>&1 | tee t2
 wypisze w terminalu wszystko a zapisze tylko stdout z kolei
./main 2>&1 | tee t2
 wypisze i zapisze wszystko.

//edit2
Przydatna tabelka:

         || visible in terminal ||   visible in file   || existing
 Syntax  ||  StdOut  |  StdErr  ||  StdOut  |  StdErr  ||   file  
=========++==========+==========++==========+==========++===========
   >     ||    no    |   yes    ||   yes    |    no    || overwrite
   >>    ||    no    |   yes    ||   yes    |    no    ||  append
         ||          |          ||          |          ||
  2>     ||   yes    |    no    ||    no    |   yes    || overwrite
  2>>    ||   yes    |    no    ||    no    |   yes    ||  append
         ||          |          ||          |          ||
  &>     ||    no    |    no    ||   yes    |   yes    || overwrite
  &>>    ||    no    |    no    ||   yes    |   yes    ||  append
         ||          |          ||          |          ||
| tee    ||   yes    |   yes    ||   yes    |    no    || overwrite
| tee -a ||   yes    |   yes    ||   yes    |    no    ||  append
P-150725
Anim
Temat założony przez niniejszego użytkownika
» 2016-08-10 22:53:35
Jestem Twoim dłużnikiem :) Dziękuję :)
P-150726
« 1 »
  Strona 1 z 1