команда перенаправления выполняется вместе с выходной оболочкой

команда перенаправления выполняется вместе с выходной оболочкой

Я хотел бы перенаправить выполненную команду вместе с выводом в файл.

например: #ls >ls_out.txt

ls_out.txt должен быть примерно таким:


лс

файл1 файл2


Спасибо!

решение1

Вы можете использовать команду «script»: что-то вроде этого:

localhost:test_sf user1$ ls
file1   file2   file3
localhost:test_sf user1$ script ls_out.txt  #starting script command ls_out.txt will contain output
Script started, output file is ls_out.txt
bash-3.2$ ls 
file1       file2       file3       ls_out.txt
bash-3.2$ exit
exit

Script done, output file is ls_out.txt
===================================================================================
localhost:test_sf user1$ cat ls_out.txt  #verify the contents now.
Script started on Wed Dec 18 12:05:23 2013
bash-3.2$ ls 
file1       file2       file3       ls_out.txt
bash-3.2$ exit
exit

Вам просто придется избавиться от части "bash-3.2$ exit exit".

решение2

Для таких целей я использую функцию:

echocmd() {
    echo "$@"
    "$@"
}

Затем

$ echocmd ls -ltr > ls_out.txt

Связанный контент