Nasıl bir dosyaya yönlendirme ve tee kullanmak biliyorum; temel düzeyde. Yani
$ alias outanderr='bash -c "echo stdout >&1; echo stderr >&2"'
# A fake "application" displaying both output and error messages.
$ outanderr 1>file # redirect stdout to a file, display stderr
stderr
$ outanderr 2>file # redirect stderr to a file, display stdout
stdout
$ outanderr 1>file 2>&1 # redirect both to a file, display nothing
$ outanderr | tee file; echo "-- file contents --" && cat file
# redirect stdout to a file, display both (note: order is messed up)
stderr
stdout
-- file contents --
stdout
$ outanderr 2>&1 | tee file; echo "-- file contents --" && cat file
# redirect both to a file, display both
stdout
stderr
-- file contents --
stdout
stderr
Soru şudur: Aşağıdaki çıktıyı almak için soru işaretlerinin yerine ne yazılır:
$ outanderr ???; echo "-- file contents --" && cat file
# redirect both to a file, display stderr
stderr
-- file contents --
stdout
stderr
Constaints:
- Bash varsayalım.
- Sipariş dosyada tutulmalıdır.
- stderr içeriği gerçek zamanlı olarak satır satır görüntülenir, yani arabellek yok.
- Ayrı komut dosyaları kullanılabilir.
- Büyü gerekli olabilir.
outanderr
stdout'a bir satır ve stderr'a başka bir satır yazdıran bir takma ad var. Fikir (mümkünse), herhangi bir programda değişiklik yapmadan çalışabilecek genel bir çözüm oluşturmaktır.
outanderr
Programın kontrolü ne kadar ?