gpt4 book ai didi

bash - 如何从我的 bash 脚本创建日志文件

转载 作者:行者123 更新时间:2023-12-05 09:32:13 27 4
gpt4 key购买 nike

如何从我的 bash 脚本创建日志文件?

我要保留没有选项的脚本,我只想知道如何注册正在使用的脚本并制作一个单独的 .log 文件。

脚本:

#!/bin/bash
trash=~/TRASH
if [ ! -e $trash ]; then
mkdir $trash
elif [ ! -d $trash ]; then
echo "$0: error: $trash is not a directory"; exit 1
fi

while getopts "hr:t:s:u:" options; do
case $options in

#ALL THE OPTIONS AREN'T HERE FOR THE PURPOSE OF KEEPING IT SHORTER

shift $((OPTIND-1))

while [ $# -gt 0 ]; do
if [ ! -e $1 ]; then
echo "$0: error: tried to delete file that does not exist: $1"
shift
continue
fi
tarname="$1.tar"
tar -cf "$tarname" "$1"
mv "$tarname" $trash
rm -rf "$1"
shift
done

最佳答案

要将 stdout 和 stderr 显示到控制台和日志,并附加到日志,可能是这样的:

#!/bin/bash
(
blah code
) 2>&1 | tee -a file.log

地点:

  • 2>&1 - 将 stderr 重定向到 stdout
  • | tee -a file.log - 将 stdout 发送到控制台,同时“tee”一个副本以 -a附加到 file.log


工作示例:

$ cat blah
(
echo "hello" # will print to stdout
dirxys # will send message to stderr
) 2>&1 | tee -a blah.log

# both stdout/stderr show up on console:

$ blah
hello
./blah: line 3: dirxys: command not found

# both stdout/stderr also show up in log:

$ cat blah.log
hello
./blah: line 3: dirxys: command not found

关于bash - 如何从我的 bash 脚本创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68292471/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com