将shell脚本的输出重定向到文件
我正在尝试重定向脚本的输出,需要在脚本内部调用它将shell脚本的输出重定向到文件,shell,scripting,Shell,Scripting,我正在尝试重定向脚本的输出,需要在脚本内部调用它 filename=uname -a filename="$filename" date 2>&1 | tee $filename".txt" 这就是我目前所知道的,但显然是错误的。我知道的不多,所以非常感谢您的帮助 -Alex您应该使用echo将所有内容打印到控制台。然后您可以将其重定向到日志。例如: # my_file.sh echo "Doing stuff" # Do stuff # Invocation: my_fil
filename=uname -a
filename="$filename" date
2>&1 | tee $filename".txt"
这就是我目前所知道的,但显然是错误的。我知道的不多,所以非常感谢您的帮助
-Alex您应该使用echo将所有内容打印到控制台。然后您可以将其重定向到日志。例如:
# my_file.sh
echo "Doing stuff"
# Do stuff
# Invocation:
my_file.sh > my_log.log
这给了你最大的灵活性和优雅
您还可以直接从脚本写入日志,如:
# my_file.sh
echo "Doing stuff" > my_log.log
# Do stuff
您应该使用echo将所有内容打印到console。然后您可以将其重定向到日志。例如:
# my_file.sh
echo "Doing stuff"
# Do stuff
# Invocation:
my_file.sh > my_log.log
这给了你最大的灵活性和优雅
您还可以直接从脚本写入日志,如:
# my_file.sh
echo "Doing stuff" > my_log.log
# Do stuff
这是错误的,因为没有正确分配变量。假设
date
是GNU日期,而不是您创建的某个“日期”函数。你可能在找。使用$()
语法执行命令并将其放入变量
filename="$(uname -a)$(date)"
顺便问一下,您确定要使用
uname-a
作为文件名吗?您可能还需要考虑格式化日期,例如“代码>日期+%y%M%D%%H%M%S/<代码>。< P>它是错误的,因为您没有正确地分配变量。假设date
是GNU日期,而不是您创建的某个“日期”函数。你可能在找。使用$()
语法执行命令并将其放入变量
filename="$(uname -a)$(date)"
顺便问一下,您确定要使用uname-a
作为文件名吗?您可能还需要考虑格式化日期,例如“代码>日期+%y%M%D%%H%M%S/<代码>。
。。。
如果你看看我上面贴的代码
我正在尝试动态命名日志
并使用T形三通打印到
控制台和命令行
我想你在找这样的东西:
filename="$(uname -n)-$(date +%F).txt"
{
dostuff
domorestuff
} 2>&1 | tee "$filename"
。。。
如果你看看我上面贴的代码
我正在尝试动态命名日志
并使用T形三通打印到
控制台和命令行
我想你在找这样的东西:
filename="$(uname -n)-$(date +%F).txt"
{
dostuff
domorestuff
} 2>&1 | tee "$filename"
这并没有真正回答我的问题。如果你看一下我上面发布的代码,我试图动态命名日志,并使用tee打印到控制台和命令行,但这并不能真正回答我的问题。如果您查看我上面发布的代码,我将尝试动态命名日志,并使用tee打印到控制台和命令行。可能的重复项--抱歉,这是无耻的广告,但我不想复制我的答案。;-)很抱歉,这是无耻的广告,但我不想复制我的答案