преобразование cshell в bash

#bash #csh

#bash #csh

Вопрос:

Я пытаюсь перевести следующую команду cshell в bash, но я не уверен, что она делает и как я могу перевести ее в bash.

 ./runall |amp; fold -w 80 |amp; tee ${log_file}
  

Любая помощь приветствуется,

Ted

Ответ №1:

foo |amp; bar выполняется foo с его stdout и stderr, передаваемыми по конвейеру в stdin bar .

Эквивалент bash является foo 2>amp;1 | bar .

Итак, для вашей команды это должно быть (непроверено):

 ./runall 2>amp;1 | fold -w 80 2>amp;1 | tee ${log_file}
  

(Фигурные скобки в ${log_file} на самом деле не нужны, но они безвредны, и некоторые считают их хорошей идеей; это верно как для csh, так и для bash.)