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 都不会保存到文件中,而只会保存它的输出。有没有办法这样做?
您可以将命令存储在数组中,打印并运行它:
# 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)