如何将命令以及该命令的输出保存到文件中

Rag*_*eth 5 linux command-line pipe console tee

嗨,我想将命令的输出和为创建输出而运行的命令保存到同一个文件中。我理解其中任何一个

*some_command* > file.txt   
*some_command* | tee file.txt
Run Code Online (Sandbox Code Playgroud)

可以完成,但无论哪种情况,some_command 都不会保存到文件中,而只会保存它的输出。有没有办法这样做?

pLu*_*umo 1

您可以将命令存储在数组中,打印并运行它:

# Define command
mycmd=(some_command -o "some option")

# Print command
echo "${mycmd[@]}"

# Run command
"${mycmd[@]}" 
Run Code Online (Sandbox Code Playgroud)

也可以看看。

请注意,这将在打印命令时去除引号。


将其放入一个函数中:

lognrun(){ echo "$@"; "$@"; }
lognrun some_command -o "some_option" > logfile
Run Code Online (Sandbox Code Playgroud)