gpt4 book ai didi

linux - 在将一个方法的输出发送到另一个之前传递和修改它

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:52 26 4
gpt4 key购买 nike

有没有办法在将命令的输出通过管道传输到另一个方法之前修改它?

例如:

print_log_message()
{
echo "A descriptive log message"
}

print_error_message()
{
echo "A descriptive error message"
}

log()
{
logger -s $1
}

我希望以以下格式记录一条消息:“日志消息:描述性日志消息”

但是前缀“Log message:”可能会改变。

print_log_message > log "Log message: ${log_output}"

print_error_message > log "Error message: ${error_output}"

最佳答案

不确定这是否真的能回答您的问题,但我最近遇到了类似的问题。我不知道“>”重定向,但我可以提供两种可能性。

首先使用管道('|'):

log(){
while read msg
do
echo "$1: $msg"
done
}

echo "all is fine" | log "Log message"
# Log message: all is fine
echo "drama!" | log "Error message"
# Error message: drama!

但我不确定您为什么需要使用标准输入,也许它对您来说是强制性的?如果不是,我认为您最好使用仅使用函数的解决方案,例如:

log(){
echo "${2:-Log message}: ${1:-}"
}

log "all is fine"
# Log message: all is fine
log "drama!" "Error message"
# Error message: drama!

当然,你可以在上面加上另一个函数让它更有表现力:

error(){
log "${1:-}" "Error message"
}

log "all is fine"
# Log message: all is fine
error "drama!"
# Error message: drama!

希望这对您有所帮助。如果您真的需要重定向 ('>'),请告诉我,我会深入挖掘。

关于linux - 在将一个方法的输出发送到另一个之前传递和修改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32066880/

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