> ${OUTFILE} 当 OUTFILE 是一个实际的文件路径时,它工作得很好。但是,有时我想通过修改 O-6ren">
gpt4 book ai didi

Bash 脚本 - 标准输出文件描述符?

转载 作者:行者123 更新时间:2023-12-05 08:27:36 24 4
gpt4 key购买 nike

我的脚本中有以下内容:

OUTFILE=./output.log
echo "foo" >> ${OUTFILE}

OUTFILE 是一个实际的文件路径时,它工作得很好。但是,有时我想通过修改 OUTFILE 查看 stdout 上的输出,但它不起作用。我尝试使用 1&1,包括引号和不引号,并将其留空。
它只是不断告诉我:

./foo.sh: line 2: ${OUTFILE}: ambiguous redirect

最佳答案

使用 /dev/stdout 作为你的文件名。 (参见 Portability of “> /dev/stdout” 。)

由于解析顺序问题,您不能在变量中使用 &1在执行变量扩展之前搜索重定向标记。所以当你使用:

$ o='&1'
$ echo >$o

shell 扫描重定向运算符并看到 > 重定向运算符而不是 >& 运算符。 (并且无论如何都没有 >>& 运算符开始,因此您的附加示例无论如何都不会工作。尽管较新版本的 bash 确实有 &>>> >> 文件 2>&1 使用的运算符。)

关于Bash 脚本 - 标准输出文件描述符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36423495/

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